Python:Flask uWSGI 线程在进行网络调用时停止
我有一个Flask服务器,它是建立在uWSGI之上的,配置如下:
[uwsgi]
http-socket = :9000
plugin = python
wsgi-file = /.../whatever.py
enable-threads = true
这个Flask服务器有一个后台线程,它定期向另一个服务器发送请求,使用的命令是:
r = requests.get(...)
我在这个命令前后加了日志记录,结果发现这个命令似乎一直没有返回,线程就停在那里了。
有没有人知道为什么这个后台线程会卡住?注意,我在配置中加了enable-threads = true
。
更新
- 我在requests.get()中添加了一个超时参数。现在的情况有点奇怪——在一台服务器上后台线程正常工作,但在另一台服务器上却失败了。
1 个回答
1
用 kill
命令结束所有的 uWSGI 实例,然后用 sudo service uwsgi restart
重新启动它们,这样就解决了问题。
看起来 sudo service uwsgi stop
并没有真正停止所有的 uwsgi
实例。