我正在使用 mongodb 副本集作为 celery 的代理和结果存储。
我已经成功地让它在副本集上运行,但是当我关闭主要的 mongodb 节点,并且副本集将辅助节点提升为主要节点时,celery worker 和 beat 进程就死掉了。
如果我重新启动它们,它们在新主服务器上运行得很好。有没有办法让 celery 等一会儿,让新的 primary 选举出来?
在这种情况下,celery 在 django-celery 下运行。
更新记录到 kombu( celery 使用的传输层)的问题:https://github.com/ask/kombu/issues/123
最佳答案
尝试运行“mongos”实例作为副本集的包装器。在您的案例中,这不是失败点。 “mongos”将负责故障转移。
关于python - celery 用作代理时能否优雅地承受 mongodb 故障转移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10144526/