للتكاثر ، ابدأ 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-jitter
أي تأثير عند ضبط --max-requests
على 0.
ما هو السلوك الذي تتوقعه؟ عادة ، يجب أن يعني max-requests=0
أن العمال لا يقومون بإعادة التشغيل تلقائيًا أبدًا ولكن من السجل الخاص بك يبدو الأمر كما لو كان كذلك.
تم تقديم هذا الخطأ في d4e1bfe5bd7801c160282310875c70cec15b7c07:
السطر self.max_requests = cfg.max_requests + jitter or MAXSIZE
الآن self.max_requests = cfg.max_requests + jitter or sys.maxsize
منذ e974f30517261b2bc95cfb2017a8688f367c8bf3 سيعيّن self.max_requests
إلى قيمة _jitter_.
يجب علينا بالفعل تعيين self.max_requests
فقط إذا كانت قيمة الإعداد أكبر من 0.
joekohlsdorf ، التصحيح أعلاه يجب أن يصلح الخطأ ولكن أخبرنا ...
شكرا ، تبدو جيدة بالنسبة لي.
التعليق الأكثر فائدة
تم تقديم هذا الخطأ في d4e1bfe5bd7801c160282310875c70cec15b7c07:
السطر
self.max_requests = cfg.max_requests + jitter or MAXSIZE
الآنself.max_requests = cfg.max_requests + jitter or sys.maxsize
منذ e974f30517261b2bc95cfb2017a8688f367c8bf3 سيعيّنself.max_requests
إلى قيمة _jitter_.يجب علينا بالفعل تعيين
self.max_requests
فقط إذا كانت قيمة الإعداد أكبر من 0.