我們正在對一個解析基於時間的事件的系統進行編碼,並且我們希望爲這些事件實施一個抑制系統,我們可以爲這些事件提供類似cron的語法來進行匹配。基於時間/日期的抑制系統
例如如果抑制...
- ..事件上月
- 的最後一個星期五發生..事件下午4點到下午5點平日
- 之間發生..事件發生在星期天
等等。
我們正在使用Python,所以我希望可能有一個模塊來做這種事情,但是我的搜索技巧讓我失望(很多關於調度事件的結果,而我想要的卻是相反的 - 當前時間匹配定義的時間表)。
另外,我很高興從頭開始寫一個,如果任何人有任何建議,最好的方式來存儲和比較時間表與時間。
編輯:
爲了澄清,抑制時間表不是一成不變的,所以我不能簡單地編寫一個函數來處理具體案件。時間表需要存儲在數據庫中,並依賴於一個事件,所以我可以大致做:
sql_rows = ..... "SELECT * FROM suppressions WHERE event_id = ?"
for row in sql_rows:
if matchesSchedule(current_time,row):
print "This should be suppressed"
所以我需要來表示我可以在表中存儲格式的時間表,再搭配針對當前時間組件的列。
我希望這可以幫助http://docs.python.org/2/library/sched.html –
@NikhilRupanawar遺憾的是沒有。正如我所提到的,我不是安排活動,更像是測試時間是否符合給定的時間表。 – AndyC
如果我正確地理解了你,你只是想將給定的時間與一組時間模式進行比較,並檢查它是否與一個或多個時間模式匹配。直接的方法是將給定的時間轉換爲日期時間對象,然後檢查該對象的約束條件,例如(4,5,6)中的d.weekday()和d.hour == 10'。爲什麼不可能? – Alfe