【发布时间】:2012-03-21 15:16:51
【问题描述】:
我正在寻找一个轻量级系统,它可以让我将一次性(非重复)任务排队并让它在未来的特定时间执行。
这适用于用户执行基于时间的任务的游戏后端。我需要服务器在完成时检查用户“工作”的状态,并对他们的游戏状态执行必要的内务管理。
我对 Redis、Celery、Beanstalkd、ZeroMQ 等有点熟悉,但我还没有找到任何关于安排将来要执行的单个工作单元的信息。 (或在设定的时间退出队列)Celerybeat 有一个用于 cron 类型的重复任务的调度程序,但我没有看到一次性的任何东西。
我还在 *nix 中看到了“at”命令,但我不知道有任何前端可以帮助我管理作业。
我知道有一些简单的解决方案,例如在 Redis 中排序键和执行阻塞弹出,但我不想连续轮询队列以查看下一个作业是否准备好。
我找到的最接近的是 GAE 上的延迟库,但我希望能在我自己的 Linux 机器上与其他组件一起运行。
如果有任何建议,我将不胜感激!
【问题讨论】:
-
如果有人感兴趣,我想我找到了我想要的东西。 Beanstalkd 有一个“延迟”参数,可以将作业排入延迟队列,并在指定秒数后将其放入就绪队列。
标签: queue scheduled-tasks