Python uWSGI Web服务器在prod上重新启动的时间太长

Python uWSGI Web服务器在prod上重新启动的时间太长,python,webserver,uwsgi,Python,Webserver,Uwsgi,我已经开始使用uWSGI作为我的flask应用程序的web服务器。 我这样做是为了无缝部署(无停机时间) 我的uWSGI版本是uWSGI==2.0.10 我在本地主机上进行模拟,并使用kill-HUPcat master.pid重新启动,它立即重新启动 在生产过程中,在收到以下消息后,大约需要一分钟(这是一个很大的时间)才能开始接收新请求: 优雅地杀死工人8(pid:16498)。。。 …优雅地杀害工人。。。 优雅地杀死工人1(pid:16491)。。。 优雅地杀死工人2(pid:16492)

我已经开始使用uWSGI作为我的flask应用程序的web服务器。 我这样做是为了
无缝部署(无停机时间)
我的uWSGI版本是
uWSGI==2.0.10

  • 我在本地主机上进行模拟,并使用kill-HUP
    cat master.pid重新启动,它立即重新启动
  • 在生产过程中,在收到以下消息后,大约需要一分钟(这是一个很大的时间)才能开始接收新请求:
  • 
    优雅地杀死工人8(pid:16498)。。。
    …优雅地杀害工人。。。
    优雅地杀死工人1(pid:16491)。。。
    优雅地杀死工人2(pid:16492)。。。
    .....
    优雅地杀死工人7(pid:16497)。。。
    优雅地杀死工人8(pid:16498)。。。
    

    优雅的重新加载意味着工人的合作,他们得到信号HUP,他们需要在60秒内死亡

    阻止该过程的原因有多种:

    • 您已覆盖HUP信号处理程序
    • 您的工作线程生成非守护进程线程
    • 应用程序中的一个错误正在阻止worker正确结束

    你可以调查为什么你的员工被阻止(最终扫射他们),或者干脆不那么“仁慈”,减少(通过--worker-reload-mercy选项)这60秒是一个较低的值

    你知道为什么这发生在prod而不是开发中吗?工人们似乎正处于忙碌状态,他们会先花时间完成一些请求。生产负荷模式可能与开发负荷模式不同。