Gunicorn: рдореИрдВ рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд░реВрдВ рдЬреЛ рдЧрдирд┐рдХреЛрд░реНрди рдЪрд▓рддрд╛ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рджрд┐рд╕ре░ 2010  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: benoitc/gunicorn

рдЕрднреА, рдореИрдВ рдЕрдкрдирд╛ рд╡реЗрдм рдРрдк рдЗрд╕ рддрд░рд╣ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ:

$ gunicorn webapp:application

рдореИрдВ рдЕрдкрдиреЗ webapp.py рдХреЗ рдЕрдВрджрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреБрдЫ рдкреИрд░рд╛рдореАрдЯрд░ рдЦрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВ рдЕрдкрдиреЗ рд╡реЗрдмрдкреИрдк рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рдПрдХ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЧрдирд┐рдХреЛрд░реНрди рдХреЛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрд╕ рдкрдврд╝рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╣ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:

$ gunicorn webapp:application dev.cfg

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЧрдирд┐рдХреЛрд░реНрди рдиреЗ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди 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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bywangxp picture bywangxp  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Bogdanp picture Bogdanp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

agilezebra picture agilezebra  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lordmauve picture lordmauve  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thomasjungblut picture thomasjungblut  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ