我们在Django项目中使用Celery作为后台任务。 不幸的是,我们在任务中有许多阻塞套接字,可以建立很长时间。所以芹菜变得满载并且没有反应。
Gevent可以帮助我使用套接字,但是Celery只有gevent的实验性支持(正如我在实践中发现的那样,它不能很好地工作)。 所以我考虑切换到另一个任务队列系统。
我可以选择两种不同的方式:
Celery是否有任何类似物,即使在突然退出后也能保证我的任务执行?
答案 0 :(得分:1)
Zeromq可能适合您的使用案例。
参见 - https://serverfault.com/questions/80679/how-to-pick-between-rabbitmq-and-zeromq-or-something-else
但是,您需要编写自己的消息库来保留消息。
答案 1 :(得分:1)
您是否尝试过使用Celery + eventlet?它在我们的项目中运作良好