قارورة/جونيكورن مع 4 عمال:هل الاقتراع الطويل يمنع العامل؟
سؤال
لقد كتبت شيئًا كهذا (مع المزيد من التعليمات البرمجية، الجزء المهم هو sleep(5)
):
def get(self):
import time
time.sleep(5)
return jsonify({'result':'OK'})
أبدأ الخادم الخاص بي مثل هذا:
gunicorn serve:app -b 127.0.0.2:8000 -w 4
بينما التطبيق "نائم" هل هذا يمنع العامل بأكمله؟كيف يؤثر هذا gunicorn
القدرة على الاستجابة؟
المحلول
gunicorn
سيتم افتراضيًا استخدام العمال المتزامنين، الذين سيخدمون طلبًا واحدًا فقط في كل مرة، لذلك سوف تستهلك نعم هذا العامل طوال عمر الاستقصاء الطويل. gunicorn
لا يدعم العمال غير المتزامنين, ، والذي سيسمح للعامل بخدمة الطلبات الأخرى إلى جانب الاستقصاء الطويل - راجع اختيار نوع العامل:
gunicorn -k gevent -b 127.0.0.1:8000 serve:app
لا تنتمي إلى StackOverflow