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. 延遲調度調用?
- 2. LINQ延遲執行
- 3. PLINQ延遲執行
- 4. AS3延遲執行?
- 5. 延遲角度指令執行
- 6. Ruby on Rails,ActiveRecord回調,延遲執行
- 7. 使用延遲執行與JavaScript
- 8. 延遲任務:在Spring 3中首次執行調度程序
- 9. 延遲調用
- 10. Redis延遲鍵添加
- 11. 延遲在執行Segue
- 12. Jquery的延遲執行
- 13. 角執行與延遲
- 14. Iphone延遲執行代碼
- 15. 延遲代碼執行
- 16. 執行segue的延遲iOS
- 17. 延遲執行 - C#WPF
- 18. jquery延遲執行函數
- 19. 線程執行延遲+ Android
- 20. C#的LINQ - 延遲執行
- 21. 延遲Java步驟執行
- 22. groovy - 執行前延遲
- 23. Javascript代碼執行延遲
- 24. VB.NET中的延遲執行
- 25. 延遲uart命令執行
- 26. Apache Storm:執行程序之間的關係,執行延遲和進程延遲?
- 27. 在被調用的函數中延遲執行javascript代碼
- 28. 延遲href執行點擊直到ajax調用後
- 29. 在延遲後執行選擇器只調用一次
- 30. 在時間段內執行n次的延遲函數執行(API調用)
很酷,但我想要獲得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