从启动应用程序一段时间后nginx,uwsgi,python永久mysql错误

时间:2014-09-18 05:30:53

标签: python mysql uwsgi

我使用nginx作为前端服务器,使用uwsgi作为python应用程序。每天大约一次我的一个应用程序开始下降。在日志中我可以看到不同的mysql错误。例如:

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

sqlalchemy.exc.OperationalError: (OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)") None None

还有一些关于can't locate row column for column ...的内容。也许更有趣:

--- no python application found, check your startup logs for errors ---

有什么帮助 - 我正在杀死我的uwsgi进程并再次运行它。有趣的是其他应用程序(他们也使用mysql)可以继续工作。

如果我只是杀死叉子没有任何反应。我必须杀死主进程。

我的uwsgi配置是:

module = stulyev
callable = app
pp = /home/krasulya/apps/stulyev.net
logto = /var/log/stulyev.net.log
touch-reload = /tmp/stulyev.net.sock
socket = /tmp/stulyev.net.sock
uid = krasulya
gid = www-data
daemonize = /var/log/stulyev.net.daemon.log
reload-on-exception = true
harakiri = 30
max-requests = 10000
harakiri-verbose = 1
buffer-size = 65535

我该怎么办?感谢。

1 个答案:

答案 0 :(得分:5)

不要在主服务器中打开数据库连接。并非所有sqlalchemy适配器都支持它。每个工作人员打开一次连接,或者在uWSGI中添加lazy-apps = true,以便在每个分支上加载整个应用程序:http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html