4
A
回答
1
你可以用那些在他們的名字時組件多個列表的環工作。作爲時間分量,您可以選擇當前秒(0-59)。
您總是將任務添加到當前列表中。要獲得這些工作,你只能在那些有保證的列表上做一個BLPOP(低超時),這個列表的內容比給定的秒數早。
如果你從多個主機工作,你必須注意時鐘是同步的(NTP)。
15
如果你想要做的Redis調度,我會建議使用的有序set(在Z *)的命令:
http://code.google.com/p/redis/wiki/SortedSets
你可以做的是這樣的:
ZADD jobs <unix timestamp of when you want the job to run> <job identifier>
例如:
ZADD jobs 1291348355
然後,每隔一段時間(直到每個secon d)你可以拉預定的工作,應該運行(或應該已經運行了):
ZRANGEBYSCORE jobs -inf, <current unix timestamp>
繁榮,你有你的工作運行。當然,請確保從已排序集合中刪除已完成的作業。
1
相關問題
- 1. 延遲Python調度執行的原因
- 2. 如何使用可延遲來執行一系列Redis操作?
- 3. 延遲調度調用?
- 4. 延遲執行
- 5. 延遲執行IRP_MN_SET_POWER
- 6. LINQ延遲執行
- 7. AS3延遲執行?
- 8. PLINQ延遲執行
- 9. 延遲角度指令執行
- 10. 使用Redis-Cli瞭解延遲
- 11. Ruby on Rails,ActiveRecord回調,延遲執行
- 12. 延遲執行,包括成功回調
- 13. 使用epoll主循環延遲執行
- 14. 使用IQueryable的延遲執行
- 15. 使用延遲執行與JavaScript
- 16. 在Redis中超過一小時的延遲調度
- 17. 延遲任務:在Spring 3中首次執行調度程序
- 18. FPS延遲調度程序?
- 19. 延遲調用
- 20. Redis延遲鍵添加
- 21. C#的LINQ - 延遲執行
- 22. Javascript代碼執行延遲
- 23. Jquery的延遲執行
- 24. jquery延遲功能執行
- 25. Iphone延遲執行代碼
- 26. 延遲uart命令執行
- 27. jquery延遲執行代碼
- 28. Platform.runLater問題 - 延遲執行
- 29. 線程執行延遲+ Android
- 30. VB.NET中的延遲執行
很酷,但我想要獲得BLPOP語義。也就是說,我需要對Redis進行查詢,直到我有一些東西可以運行。一秒的粒度不是很健壯。 – 2010-12-03 04:29:34
你是更安排還是排隊?我想這取決於你工作的精度。當我想到按照「在2小時內」或「在每個小時內」等等的方式來安排工作時,我沒有看到在該用例中亞秒級調度精度成爲問題。 排隊/背景聽起來更像你正在尋找的東西,那就是:「我想把工作推到背景並讓工作人員在排隊後立即就緒。」在這種情況下,BLPOP具有很大的意義。我使用類似於後臺處理流數據的方法(例如twitter內容)。 – efalcao 2010-12-03 05:38:59
哦,老線程,但 - 亞歷山大 - 你可以使用一種調度程序線程,它每隔N秒檢查一次已排序的集合,並將主要作業工作者正在blpop的作業從已排序的集合移動到主作業列表中。 – 2012-08-20 12:13:41