Python 芹菜工人使用“--without heartbeat”标志运行的应用程序影响
讨论从高层次上讨论了使用Python 芹菜工人使用“--without heartbeat”标志运行的应用程序影响,python,celery,Python,Celery,讨论从高层次上讨论了使用——不使用hearbeat——不使用流言蜚语——不使用migle旗帜经营芹菜工人的一些影响 我想知道--withheartbeat标志是否会影响工作人员检测代理断开连接和尝试重新连接的能力。芹菜文档只隐晦地提到这些在应用层而不是TCP/IP层起作用的心跳。好的——我真正想知道的是,消除这些消息是否会影响我的工作人员的工作能力——特别是检测代理断开连接,然后尝试适当地重新连接 我自己运行了一些快速测试,发现在传递了--无心跳标志的情况下,工作人员仍然非常快地检测到代理断开连
——不使用hearbeat——不使用流言蜚语——不使用migle
旗帜经营芹菜工人的一些影响
我想知道--withheartbeat
标志是否会影响工作人员检测代理断开连接和尝试重新连接的能力。芹菜文档只隐晦地提到这些在应用层而不是TCP/IP层起作用的心跳。好的——我真正想知道的是,消除这些消息是否会影响我的工作人员的工作能力——特别是检测代理断开连接,然后尝试适当地重新连接
我自己运行了一些快速测试,发现在传递了--无心跳
标志的情况下,工作人员仍然非常快地检测到代理断开连接(由我关闭RabbitMQ实例启动),他们尝试重新连接到代理,并在我重新启动RabbitMQ实例时成功地重新连接到代理。因此,我的基本测试表明,心跳对于基本的健康检查和功能是不必要的。他们到底有什么意义?我不清楚这一点,但在最基本的层面上,它们似乎对worker功能没有影响
关闭心跳的实际、特定于应用程序的含义是什么?所以这是心跳机制的核心。现在,由于AMQP使用TCP,芹菜工人将尝试重新连接,如果他们无法建立连接或TCP协议要求时。因此,似乎不需要心跳机制。但它有几个优点:
与其通过关闭工作进程进行测试,不如尝试从一端断开网络连接。在这种情况下,TCP不会完全关闭连接。这将是一个更好的测试,用于确定心跳(应用程序级别)是否正常。TCP心跳也可以配置,但在合理的时间内无法在大多数系统上运行。Re:第2点:这是否意味着如果我没有添加任何工作代码来处理丢失的心跳,那么启用或不启用心跳之间仍然没有实际区别?也就是说,需要启用心跳,并且我编写了处理心跳丢失情况的特定代码?我认为工作人员的默认行为是尝试重新连接到代理。这就是你们所缺少的,根据你们的实验,它是不需要的,因为它已经在TCP级别上处理过了