我需要构建一个处理两种类型任务的系统.一种类型可以创建更多自己或另一种类型的任务.工人很少(2-3),只有一个主人.最重要的要求是系统应该优雅地处理重新启动:即在重新启动时,正在进行的任务应该从头开始,工作人员应该选择在重新启动之前排队的任务.看看芹菜它似乎适合这个用例.但是,我有几个问题:
1)Celery能否按照描述处理整个系统的重启?(芹菜+工人+经纪人,一切都重新启动,完全停电).
2)在这种情况下使用的最佳代理是什么?我更喜欢SQLAlchemy + SQLite,因为它更"自包含",但如果RabbitMQ是正确的选择,考虑到要求优雅地处理完全重启,那么我可以继续使用它.
bac*_*ack 15
1)Celery能否按照描述处理整个系统的重启?(芹菜+工人+经纪人,一切都重新启动,完全停电).
是的,即使在重新启动服务器后,在RabbitMQ(持久队列)上创建自己的队列时,任务也将恢复,并由Celery执行.
2)在这种情况下使用的最佳代理是什么?我更喜欢SQLAlchemy + SQLite,因为它更"自包含",但如果RabbitMQ是正确的选择,考虑到要求优雅地处理完全重启,那么我可以继续使用它.
使用RabbitMQ.我们正在使用RabbitMQ + Celery进行生产.所以我建议你使用RabbitMQ作为经纪人.
备注: