我正在寻找一个轻量级系统,让我排队一次性(非经常性)任务,让它在将来的某个特定时间执行。
这是用于游戏的后端,用户执行基于时间的任务。我需要服务器在完成时检查用户“工作”的状态,并对他们的游戏状态进行必要的内务管理。
我对Redis,Celery,Beanstalkd,ZeroMQ等人有点熟悉,但我没有找到任何有关安排将来执行的单个工作单元的信息。 (或在设定的时间弹出队列)Celerybeat有一个用于cron类型重复任务的调度程序,但我没有看到任何一次性的事情。
我也看过* nix中的“at”命令,但我不知道它有什么前端可以帮助我管理这些工作。
我意识到有一些简单的解决方案,例如在Redis中订购密钥并执行阻止弹出,但我不想连续轮询队列以查看下一个工作是否准备就绪。
我发现的最接近的是GAE上的延迟库,但是我希望在我自己的Linux机器上运行的东西以及我的其他组件。
我很感激任何建议!
答案 0 :(得分:0)
Celery允许您在调用要执行的任务时指定倒计时或ETA。
文档说得最好:
http://docs.celeryproject.org/en/latest/userguide/calling.html#eta-and-countdown