我經常有一些模型是某些遠程資源的本地副本,需要定期保持同步。每個實體的定期任務
Task(
url="/keep_in_sync",
params={'entity_id':entity_id},
name="sync-%s" % entity_id,
countdown=3600
).add()
裏面keep_in_sync任何更改都保存到模型和一個新的任務安排在稍後再次發生。
現在,雖然表面上看起來這是一個很好的解決方案,但在實踐中,如果所有必要的任務都真的添加了,您可能會擔心。也許你有倉庫籠子裏的食物顆粒水平的實體,以便自動發送電子郵件給你的管家餵它們。但幾周後,當你從假期回來時,你會發現你的幾個倉鼠捱餓。
然後,它開始看起來像一個好主意,使一個腳本,通過每個實體,並確保適當的任務真的在隊列中。但是Task和Queue類都沒有任何方法來檢查任務是否存在。
您可以拯救倉鼠,並想出一個更好的方法來確保每個實體週期性地調用真正的方法嗎?
更新
看來,如果你想成爲真正確保任務計劃,你需要保持自己的任務跟蹤尼克·約翰遜建議。沒有準備好放棄方便的任務隊列,所以暫時只會容忍無法檢查任務是否真正安排的不確定性。
+1爲倉鼠隱喻:) – Xion