bottle/gunicorn 在任何请求后都没有响应 SIGTERM

问题描述 投票:0回答:1

我已经使用 Bottle 很长时间了,以前从未遇到过这种情况,但最近我开始了一个新项目,遇到了一些奇怪的行为,我根本无法追踪。

如果我在脚本中启动一个 Bottle 实例,并向该脚本发送一个 SIGTERM,它会立即正常关闭。但是,如果我发出一个 http 请求,任何将来发送的 SIGTERM 都会显示在屏幕上

[INFO] Handling signal: term
但脚本不会关闭。

起初我确信这是我的错误,我没有正确退出我的请求,但事实证明,即使是 404 请求或 405 也会触发相同的行为。

import bottle
bottle.run(host = '0.0.0.0', port = 9000, server = 'gunicorn')

如果我运行这个,然后发送SIGTERM,没问题,脚本存在。如果我请求一个页面并得到 404,就是这样,除了显示收到信号的消息之外,不再对 SIGTERM 做出任何响应,但此后它不会关闭。

主机和端口没有任何区别。添加成功的请求也不会。唯一触发该行为的似乎是

server = 'gunicorn'
线。如果我删除它,那么脚本将按预期运行。

我不断删除越来越多的代码,试图理解问题所在,直到我得到上面的结果,这就是所需要的一切。问题一定是在瓶子和gunicorn之间。

瓶子是0.12.25 古尼康是 21.2.0 python 是 3.10.12

python python-3.x gunicorn bottle
1个回答
0
投票

Whelp,我一点也不明白,但看起来这个问题与 python、bottle 或 Gunicorn 无关。我一直在使用 Chrome 进行测试,所以我一时兴起尝试在 Firefox 中发出请求,没有任何挂起。我无法解释它,但 Chrome 似乎没有关闭连接,即使它收到了所有内容并显示了输出。

© www.soinside.com 2019 - 2024. All rights reserved.