再会!
我正在迁移到 uWSGI 部署。该项目一半在 ZOPE3 上,并使用 ZODB 和 ZEO 进行多路访问。如果我像这样启动 uwsgi 守护进程:
uwsgi_python27 --http :9090 --wsgi-file /path/to/file
一切运行正常。这是单进程模式。没有块或锁。当我像这样启动应用程序时:
uwsgi_python27 --http :9090 --wsgi-file /path/to/file -p 3
一切都运行。这是预分叉模式。我们有很好的结果。但是有些请求会阻塞。我怀疑应用程序在新实例启动时会阻止 1 个请求。我有 2-3 个锁定请求。所有其他工作都很好。
但是当我这样开始时:
uwsgi_python27 --http :9090 --wsgi-file /path/to/file --master
应用程序启动,但未处理任何请求。当我 curl localhost:9090/some_page 它永远不会加载任何东西。没有 CPU 没有磁盘使用。它只是锁定。
有人知道任何可能导致这种情况的特定 ZEO 行为吗?如果我只运行 FileStorage,它会正常运行而不会出现任何死锁。有关 uWSGI 行为的主模式的任何细节也将不胜感激。