【问题标题】:Gunicorn worker getting restarted itself after long API callsGunicorn 工作人员在长时间 API 调用后自行重启
【发布时间】:2020-05-05 13:44:22
【问题描述】:

我有一个使用 Gunicorn 运行的烧瓶应用程序。

这个烧瓶应用程序有一个 API,需要两个小时才能完成。

如果在两个 30 分钟间隔后调用相同的 API 两次,则处理第一个 API 调用的进程将在第二个 API 调用后重新启动。

示例: 初始过程从 API_1 开始 30 分钟后再次调用 API_1,然后处理先前 API_1 调用的进程将重新启动。

用于启动 Gunicorn 服务器的命令:

nohup gunicorn --bind 0.0.0.0:5000 --workers=8 run:app --timeout 7200  --preload> output.log& 

核心数:8

在开发模式下运行烧瓶时我没有遇到任何问题。

知道它为什么会这样吗?

【问题讨论】:

  • gunicorn 正在管理工作进程。根据需要重新启动它们是该过程的一部分。
  • 如果worker不空闲,是否可以阻止重启。

标签: python flask gunicorn uwsgi


【解决方案1】:

您可以使用其他类型的工人。您当前的工作人员类型是同步。如果你想发送一个长请求,你可能必须使用线程工作者或异步工作者。

nohup gunicorn --bind 0.0.0.0:5000 -k gevent run:app

参考这个document

【讨论】:

    猜你喜欢
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2020-07-16
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多