Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检测芹菜连接故障并切换到故障转移然后返回?_Python_Rabbitmq_Celery - Fatal编程技术网

Python 如何检测芹菜连接故障并切换到故障转移然后返回?

Python 如何检测芹菜连接故障并切换到故障转移然后返回?,python,rabbitmq,celery,Python,Rabbitmq,Celery,所以我们的用例可能超出芹菜的功能范围,但我想我会问 用例 我们正计划使用托管/托管RabbitMQ集群来支持芹菜将用于它的代理。 我们希望确保我们的应用程序有0个停机时间(显然),因此,我们试图找出当我们的上游集群发生灾难性故障,整个集群不可用时,我们如何处理该事件 我们的想法是,我们有一个备用兔子集群,当连接断开时,我们可以自动切换芹菜以使用该连接 与此同时,Cellery正在确定主集群是否已启动并运行,当主集群启动并运行时,所有发布服务器将重新连接到主集群,工作人员将耗尽备份集群,当集群为空

所以我们的用例可能超出芹菜的功能范围,但我想我会问

用例

我们正计划使用托管/托管RabbitMQ集群来支持芹菜将用于它的代理。 我们希望确保我们的应用程序有0个停机时间(显然),因此,我们试图找出当我们的上游集群发生灾难性故障,整个集群不可用时,我们如何处理该事件

我们的想法是,我们有一个备用兔子集群,当连接断开时,我们可以自动切换芹菜以使用该连接

与此同时,Cellery正在确定主集群是否已启动并运行,当主集群启动并运行时,所有发布服务器将重新连接到主集群,工作人员将耗尽备份集群,当集群为空时,切换回主集群

问题

我遇到的困难是捕获连接失败,因为它似乎发生在芹菜的深处,因为应用程序中没有出现异常

我可以看到芹菜有一个
BROKER\u FAILOVER\u STRATEGY
configuration属性,它将处理初始交换,但它(似乎)仅在发生故障转移时使用,这不适合我们在备份时交换回主服务器的用例

我也遇到过芹菜的“引导步骤”,但这些都是在芹菜自己的“连接”引导步骤之后应用的,而芹菜自己的“连接”引导步骤就是引发异常的地方

考虑到我所发现的局限性,我有一种感觉,这种方法可能不是最好的方法,但是有人知道我该如何覆盖默认的连接引导步骤,或者通过不同的方法实现这一点吗