如何檢查午夜是否在循環中通過?
您的代碼已經這樣做,如果你指的是內部循環:date.today()
只返回日期,即除非一天內循環時結束; stamp
和check
總是相等的。
如果您的意思是外環,則在外環之外移動stamp = date.today()
,並且僅在觸發器被執行時更新stamp
,即如果stamp != check
。順便說一句,你應該使用更好的名字,如last_date
和today
。您最初可以設置last_date = None
,以便在第一遍時觸發執行。
我希望它做的事情,每天一次內部循環結束
from datetime import date
last_date = None
while True: # outer loop
for site in siteList: # inner loop
"hours long computations here"
today = date.today()
if last_date is None or last_date < today:
last_date = today # jobs are executed on different days
"send today's file here"
一般來說之後,它更靈活的分離,它調度從代碼中的任務定義代碼任務本身,例如,你可以創建一個cron作業,每天運行一次。您可以使用鎖,等待內部循環完成並避免並行運行多個作業(cron doesn't protect against it)。如果以前的工作超過一天,兩個工作可能會在同一天發生。
來源
2015-12-04 18:01:50
jfs
導入日期?那是什麼?你自己的模塊? date.today()返回什麼? – Ale
完美檢查:你有沒有在無限循環內實例化'check'?你難道不知道它曾經是哪一天嗎? –
woops你的權利它是datetime的日期,這是一個打字錯誤,它在代碼中是正確的。 – svalle