Gunicorn: --max-requests-jitterがゼロ以外の値に設定されている場合、ワーカーは--max-requests = 0で再起動します

作成日 2019年02月05日  ·  4コメント  ·  ソース: benoitc/gunicorn

再現するには、次のようにgunicornを起動します。

gunicorn -w 1 --max-requests=0 --max-requests-jitter=10 -b 0.0.0.0:8000 api:app

次に、トラフィックをそこに誘導し、次のログ出力を確認します。

[2019-02-05 20:27:23 +0000] [19] [INFO] Starting gunicorn 19.9.0
[2019-02-05 20:27:23 +0000] [19] [INFO] Listening at: http://0.0.0.0:8000 (19)
[2019-02-05 20:27:23 +0000] [19] [INFO] Using worker: sync
[2019-02-05 20:27:23 +0000] [22] [INFO] Booting worker with pid: 22
[2019-02-05 20:27:37 +0000] [22] [INFO] Autorestarting worker after current request.
[2019-02-05 20:27:37 +0000] [22] [INFO] Worker exiting (pid: 22)
[2019-02-05 20:27:37 +0000] [24] [INFO] Booting worker with pid: 24

--max-requestsが0に設定されている場合、 --max-requests-jitterは効果がないと思います。

( Feedback Requested )

最も参考になるコメント

このエラーは、d4e1bfe5bd7801c160282310875c70cec15b7c07で導入されました。

e974f30517261b2bc95cfb2017a8688f367c8bf3がself.max_requestsを_jitter_値に設定するため、行self.max_requests = cfg.max_requests + jitter or MAXSIZEself.max_requests = cfg.max_requests + jitter or sys.maxsizeになります。

設定値が0より大きい場合にのみ、実際にself.max_requests設定する必要があります。

全てのコメント4件

あなたが期待している行動は何ですか? 通常、 max-requests=0は、ワーカーが自動再起動しないことを意味しますが、ログからは自動再起動するように見えます。

このエラーは、d4e1bfe5bd7801c160282310875c70cec15b7c07で導入されました。

e974f30517261b2bc95cfb2017a8688f367c8bf3がself.max_requestsを_jitter_値に設定するため、行self.max_requests = cfg.max_requests + jitter or MAXSIZEself.max_requests = cfg.max_requests + jitter or sys.maxsizeになります。

設定値が0より大きい場合にのみ、実際にself.max_requests設定する必要があります。

@joekohlsdorf上記のパッチでエラーが修正されるはずですが、お知らせください...

ありがとう、私にはよさそうだ。

このページは役に立ちましたか?
0 / 5 - 0 評価