Gunicorn: كيف يمكنني تمرير وسيطة إلى التطبيق الذي يديره gunicorn؟

تم إنشاؤها على ٩ ديسمبر ٢٠١٠  ·  4تعليقات  ·  مصدر: benoitc/gunicorn

الآن ، أبدأ تطبيق الويب الخاص بي مثل هذا:

$ gunicorn webapp:application

أريد تغذية بعض المعلمات لوظيفة التطبيق داخل webapp.py. على وجه الخصوص ، أريد استخدام ملف التكوين لضبط كيفية عمل تطبيق الويب الخاص بي.

قرأت المستندات لمعرفة كيفية تكوين gunicorn باستخدام ملف التكوين ، لكنني لا أريد ذلك.

لقد حاولت هذا ووجدت خطأ:

$ gunicorn webapp:application dev.cfg

بقدر ما أستطيع أن أقول ، حاول gunicorn العثور على استدعاء يسمى "application dev.cfg".

أيه أفكار؟

التعليق الأكثر فائدة

في وحدة التطبيق الخاصة بك ، يمكنك القيام بشيء مثل هذا:

def load_app(cfg_file):
    cfg = load_app_config(cfg_file)
    return my_app(cfg)

وبعد ذلك تبدأ تشغيل تطبيقك مثل:

$ gunicorn 'webapp:load_app("/path/to/my_config.ini")'

ال 4 كومينتر

في وحدة التطبيق الخاصة بك ، يمكنك القيام بشيء مثل هذا:

def load_app(cfg_file):
    cfg = load_app_config(cfg_file)
    return my_app(cfg)

وبعد ذلك تبدأ تشغيل تطبيقك مثل:

$ gunicorn 'webapp:load_app("/path/to/my_config.ini")'

أجاب.

benoitc لقد مرت عدة سنوات ، هل يمكن أن تخبرني ما إذا كانت هذه الإجابة لا تزال صحيحة؟ لم أتمكن من جعل هذا النهج يعمل من أجلي.

pellunutty لا أعتقد أن الإجابة صحيحة الآن. يمكنك تصنيف فئة فرعية واحدة من فئات التطبيق (على سبيل المثال ، BaseApplication ) وتحليل المعلومات ذات الصلة بطريقة load_config . راجع http://docs.gunicorn.org/en/stable/custom.html للحصول على مثال.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات