如何优雅地重启芹菜

时间:2016-04-14 11:29:06

标签: python celery supervisord

我们在使用Supervisord的Python 2.7上使用Celery和Pylons。每次重新启动应用程序时,Celery实例都会丢失MySQL连接并导致错误,如:

OperationalError: (OperationalError) (2006, 'MySQL server has gone away') 

这里是芹菜实例的supervisord配置:

[program:celery_default]
command=/path/python/bin/newrelic-admin run-program /path/python/bin/celery worker -Q default -c 10 ; the program (relative uses PATH, can take args)
environment=P2S_INI="/path/production.ini",NEW_RELIC_CONFIG_FILE="newrelic_celery.ini",P2S_NEW_RELIC_ENABLED=1
directory=/path/some
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1                    ; number of processes copies to start (def 1)
autostart=true                ; start at supervisord start (default: true)
autorestart=true              ; retstart at unexpected quit (default: true)
startsecs=15                  ; number of secs prog must stay running (def. 1)
startretries=10                ; max # of serial start failures (default 3)
user=somuser ;
nodaemon=false              ; run supervisord as a daemon

如何避免此类连接错误并优雅地重新启动芹菜?我也试过发送停止信号作为HUP。这也没有帮助。

0 个答案:

没有答案