jme*_*etz 5 nginx django threads uwsgi
我有一个使用基于 nginx、uWSGI 和 Django 构建的 API 的 web 应用程序。最近我在一个特定的 API 调用中看到了很多 harakiris,它执行一些快速处理,然后产生一些线程来处理一些长时间运行的函数。然后主线程返回,工作线程将结果存储在缓存中并退出。线程生成后,它们之间没有交互。
我的 uWSGI 设置为 20 秒的 harakiri。这应该是主线程完成并返回的充足时间(平均约为 2-3 秒)。uWSGI 是否有可能是 harakiri-ing 因为我的工作线程需要太长时间才能返回?如果是这样,我可以通过在 python 中使用多处理而不是多线程来解决这个问题吗?
谢谢!
这些选项将非常方便地了解该harakiri
功能到底发生了什么:
harakiri-verbose=true
启用 harakiri 的详细模式
py-tracebacker=/path/to/socket
启用 uWSGI python 跟踪器
从该套接字读取以查看回溯(uWSGI 方便地提供了一个--connect-and-read=/path/to/socket
选项)。
您还可以通过设置来调查请求后线程状态和日志诊断uwsgi.after_req_hook = callback
。在调用此方法之前,可以显式禁用 harakiri 模式:
harakiri-no-arh=true
在 after-request-hook 期间不要启用 harakiri
归档时间: |
|
查看次数: |
1826 次 |
最近记录: |