Ale*_*ysh 4 scheduling delayed-execution redis
任何根据Redis做延迟任务执行(即调度)的技巧?
也许是一些聪明的方法来延迟BLPOP给定的秒数?
efa*_*cao 16
如果你想用redis进行调度,我建议使用有序集(z*)命令:
http://code.google.com/p/redis/wiki/SortedSets
你能做的是这样的:
ZADD jobs <unix timestamp of when you want the job to run> <job identifier>
Run Code Online (Sandbox Code Playgroud)
例如:
ZADD jobs 1291348355
Run Code Online (Sandbox Code Playgroud)
然后,每隔一段时间(最多每秒)你就可以拉出应该运行的预定作业(或者应该已经运行):
ZRANGEBYSCORE jobs -inf, <current unix timestamp>
Run Code Online (Sandbox Code Playgroud)
热潮,你得到了你的工作.当然,请确保从已排序的集中删除已完成的作业.
| 归档时间: |
|
| 查看次数: |
5136 次 |
| 最近记录: |