芹菜与RabbitMQ失去连接

芹菜与RabbitMQ失去连接,rabbitmq,celery,Rabbitmq,Celery,我的芹菜工人偶尔会“失去”与RabbitMQ的连接。我查看了日志,在芹菜日志中没有看到任何内容,但在RabbitMQ日志中确实看到了一些内容 =警告报告===2013年1月2日::09:13:04=== TCP连接1.1.1.1:43760出现异常 连接突然关闭 我的设置很简单。我有一台服务器运行芹菜工人,另一台服务器运行RabbitMQ队列。工作进程远程连接到队列 我注意到,如果使用RabbitMQ服务器重新启动服务器,我还必须手动重新启动芹菜工人。这似乎是我使用的init脚本的问题。当向芹菜

我的芹菜工人偶尔会“失去”与RabbitMQ的连接。我查看了日志,在芹菜日志中没有看到任何内容,但在RabbitMQ日志中确实看到了一些内容

=警告报告===2013年1月2日::09:13:04=== TCP连接1.1.1.1:43760出现异常 连接突然关闭

我的设置很简单。我有一台服务器运行芹菜工人,另一台服务器运行RabbitMQ队列。工作进程远程连接到队列


我注意到,如果使用RabbitMQ服务器重新启动服务器,我还必须手动重新启动芹菜工人。

这似乎是我使用的init脚本的问题。当向芹菜守护进程发送SIG TERM信号时,它不会杀死工作进程。它使工作人员处于等待中介将任务提供给池的状态,但SIG TERM杀死了中介

    if [ $(ps aux | grep -c 'celery') -eq 1 ] ; then
            ps auxww | grep celeryd | grep -v "grep" | awk '{print $2}' | sudo xargs kill -HUP
    fi
请看我在下面找到的调试语句:

    [2013-01-02 16:23:58,624: DEBUG/MainProcess] Terminating celery.worker.consumer.Consumer...
    [2013-01-02 16:23:58,624: DEBUG/MainProcess] consumer: Stopping consumers...
    [2013-01-02 16:23:58,625: DEBUG/MainProcess] Terminating celery.worker.mediator.Mediator...
    [2013-01-02 16:23:59,034: DEBUG/MainProcess] Terminating celery.concurrency.processes.TaskPool...
    [2013-01-02 16:23:59,050: DEBUG/MainProcess] Terminating celery.worker.hub.Hub...
    [2013-01-02 16:23:59,050: DEBUG/MainProcess] consumer: Closing consumer channel...
    [2013-01-02 16:23:59,051: DEBUG/MainProcess] consumer: Closing broadcast channel...
解决方法是将SIG TERM信号发送到所有工作进程

    if [ $(ps aux | grep -c 'celery') -eq 1 ] ; then
            ps auxww | grep celeryd | grep -v "grep" | awk '{print $2}' | sudo xargs kill -HUP
    fi
每次运行jenkins构建脚本时(每次提交后),都会发生这种情况