针对一次性任务的延迟执行的队列建议

时间:2012-03-21 15:16:52

标签: queue scheduled-tasks

我正在寻找一个轻量级系统,让我排队一次性(非经常性)任务,让它在将来的某个特定时间执行。

这是用于游戏的后端,用户执行基于时间的任务。我需要服务器在完成时检查用户“工作”的状态,并对他们的游戏状态进行必要的内务管理。

我对Redis,Celery,Beanstalkd,ZeroMQ等人有点熟悉,但我没有找到任何有关安排将来执行的单个工作单元的信息。 (或在设定的时间弹出队列)Celerybeat有一个用于cron类型重复任务的调度程序,但我没有看到任何一次性的事情。

我也看过* nix中的“at”命令,但我不知道它有什么前端可以帮助我管理这些工作。

我意识到有一些简单的解决方案,例如在Redis中订购密钥并执行阻止弹出,但我不想连续轮询队列以查看下一个工作是否准备就绪。

我发现的最接近的是GAE上的延迟库,但是我希望在我自己的Linux机器上运行的东西以及我的其他组件。

我很感激任何建议!

1 个答案:

答案 0 :(得分:0)

Celery允许您在调用要执行的任务时指定倒计时或ETA。

文档说得最好:

http://docs.celeryproject.org/en/latest/userguide/calling.html#eta-and-countdown