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