Gunicorn: рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рдж рддрддреНрдХрд╛рд▓ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рдордпрдмрд╛рд╣реНрдп

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдЕрдЧре░ 2013  ┬╖  45рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: benoitc/gunicorn

рд╣рдо рд╣рд░реЛрдХреВ рдкрд░ рд╣рдорд╛рд░реЗ Django рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рдордиреЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ Gunicorn рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ 30 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рд╣реЗрд░реЛрдХреВ рдХреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╕реНрддрд░реАрдп рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ - рдРрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдиреБрд░реЛрдз _after_ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрд░реЛрдз рддреБрд░рдВрдд рдлреЙрд░реНрдо рдХреА рдПрдХ рдЧрдирд┐рдХреЛрд░реНрди рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛:

[CRITICAL] WORKER TIMEOUT (pid:15)

рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐ рдкреГрд╖реНрда рд╕реАрдзреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ - рдХрднреА-рдХрднреА рдЕрдЧрд▓рд╛ рдЕрдиреБрд░реЛрдз рд╕рдлрд▓ рд╣реЛрдЧрд╛, рдХрднреА-рдХрднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореЗрд░рд╛ рд╕рдВрджреЗрд╣ рдпрд╣ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рддрдм рд╣реЛрдЧреА рдЬрдм рдЕрдиреБрд░реЛрдз рдЙрд╕реА рдЧрдирд┐рдХреЛрд░реНрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдирд┐рдкрдЯ рд░рд╣рд╛ рдерд╛ред

рд╣рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕реАрдзреЗ Django рд╕реЗ Gunicorn рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ:

python app/manage.py run_gunicorn -b 0.0.0.0:$PORT -w 2 -k gevent

рдЕрдиреНрдп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░, рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрдХрд░_рдХрдиреЗрдХреНрд╢рди рдФрд░ рдореИрдХреНрд╕_рд░реЗрдХреНрд╡реЗрд╕реНрдЯ, рдЙрдирдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░ рд╕реЗрдЯ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдордиреЗ рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдЙрди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдЖрдЬрдорд╛рдпрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рд╡рд░реНрддрдорд╛рди Gunicorn рд╕рдВрд╕реНрдХрд░рдг реж.резрек.рем рд╣реИ, рдЬрдм рд╣рдо резрен.рел рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ рд▓реБрдврд╝рдХ рдЧрдП рдереЗ, рдЕрдЧрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрд░реЛрдд рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдореВрд▓ рдХрд╛рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдмрдбрд╝реА рдХрдард┐рдирд╛рдИ рд╣реЛ рд░рд╣реА рд╣реИред рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╣реЗрд░реЛрдХреВ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЗ:

рдЬрдмрдХрд┐ рд░рд╛рдЙрдЯрд░ рдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рд╣реИ, рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ рдЬрд┐рд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдЯрд╛рдЗрдо-рдЖрдЙрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЕрдиреБрд░реЛрдз рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдореВрд▓ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдПрдХ Gunicorn рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЕрднреА рднреА рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдХреНрдпрд╛ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рддреБрд░рдВрдд рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛, рдмрд╛рдж рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреИрд╕реЗ рдХрд░реЗрдЧрд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╢реНрд░рдорд┐рдХ gevent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд╣рд▓рд╛, рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛

  1. рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдХрдИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ gevent рдзрд╛рдЧреЗ рд╣реИрдВ, рдФрд░
  2. рдмрд╛рдж рдХреЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХреЗ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ Gunicorn рджреНрд╡рд╛рд░рд╛ рдорд╛рд░ рдбрд╛рд▓рд╛ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ Gunicorn рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ 30 рд╕реЗрдХрдВрдб рд╣реИ - Heroku рдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рдорд╛рдиред

рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдз рд╣рдорд╛рд░реЗ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХрдИ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдбреАрдмреА рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд░рддреЗ рд╕рдордп рд╣реЗрд░реЛрдХреВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рди рд╕рдордп рдХреЗ рдмрд╛рдж рд╣реА рджреБрд░реНрдШрдЯрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рд╣рдордиреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╢реНрдп рдмрдирд╛рдХрд░ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реЗрд░реЛрдХреВ рдЯрд╛рдЗрдордЖрдЙрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рддрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд▓рдВрдмреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рд╣реЗрд░реЛрдХреВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 30 рд╕реЗрдХрдВрдб рдХреЗ рдирд┐рд╢рд╛рди рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдкреВрд░реНрд╡ рджреГрд╢реНрдп рдЕрдЧрд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ Gunicorn рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рдордпрдмрд╛рд╣реНрдп рдкреИрджрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЬрдмрдХрд┐ 'рдиреАрдВрдж' рджреГрд╢реНрдп рдирд╣реАрдВ рдерд╛ред

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╣реИ - рдХреЛрдИ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЬреЛ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

( FeaturWorker - Bugs -

рд╕рднреА 45 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@Jwpe рдЙрддреНрдХреГрд╖реНрдЯ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯред

рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдЧреНрд░реАрди'рдб рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕ рдХрд╛рдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрджрд░ рдкреИрдЪ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рдереАред рдореИрдВ рдЕрднреА рдЪреАрдЬреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЧрдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИ рдФрд░ рдПрд╕рд┐рдВрдХ рд╢реНрд░рдорд┐рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ "рдПрдХ рдЧреНрд░реАрдирд▓реЗрдЯ $ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдХреЗрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ рд╣реИ"ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реЗ PostgreSQL рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдкрд╣рд▓реА рдЬрдЧрд╣ рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред

@davisp рдЗрд╕ рдкрд░ рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЖрдкрдХреЗ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ psycopg2 рдПрдбреЗрдкреНрдЯрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА - рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЕрдкрдиреЗ Django рдРрдк рдХреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ - рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЗрд╕ рдЦрдВрдб рдХреА рдЦреЛрдЬ рдХреА рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ:

рдЪреЗрддрд╛рд╡рдиреА: Psycopg рдХрдиреЗрдХреНрд╢рди рд╣рд░реЗ рдзрд╛рдЧреЗ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд░реЗ рдзрд╛рдЧреЗ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддрд┐ рдереНрд░реЗрдб рдПрдХ рдХрд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА (рдпрд╛ 2.4.2 рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЧрддрд┐рд░реЛрдз)ред
рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрд╛ рддреЛ рдХреЛрд░рдЖрдЙрдЯрд┐рди рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ рдпрд╛ рд╕рд╛рдЭрд╛ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА-рдлреНрд░реЗрдВрдбрд▓реА рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ - psycopg2 рдХреЛ рд╣рд░реЗ рдзрд╛рдЧреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдЖрдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рддрд░реАрдХрд╛, psycopg рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬреЛ coroutines рдХреЗ рд▓рд┐рдП psycopg рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред рдЕрдиреБрд╢рдВрд╕рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рд╛рдЗрдХреЛрдЧреНрд░реАрди рд╣реИ ред

рдореИрдВ рд╕рд╛рдЗрдХреЛрдЧреНрд░реАрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛, рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрд▓реНрдж рд╣реА рдХреБрдЫ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ред

@Jwpe рд╡рд╣ рд╣реБрдХ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рдерд╛ред

@benoitc рд╢рд╛рдпрдж рд╣рдореЗрдВ рдЗрд╕реЗ Gunicorn рдбреЙрдХреНрд╕ рдореЗрдВ рдХрд╣реАрдВ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХрд╣рд╛рдБ рд╣реЛрдЧреАред

@davisp рд╢рд╛рдпрдж рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ?

hmppff рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдерд╛ (http://docs.gunicorn.org/en/latest/faq.html) рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣рд╛рдВ рд╕реЗ "рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг" рдЕрдиреБрднрд╛рдЧ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛред рдпрдХреАрди рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдРрд╕реЗ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдФрд░ рдЕрдиреНрдп рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

рд╢рд╛рдпрдж рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдпрд╛ "рдЧреНрд░реАрди рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЛрдЯреНрд╕" рдкреГрд╖реНрдаред рд╕реБрдкрд░ рдкреНрд░реЗрд╕рд┐рдВрдЧ рдирд╣реАрдВред

рдореИрдВ рд▓рдЧрднрдЧ рд╡рд╣реА рд╕рдЯреАрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдЬреЛ рд╣рд░реЛрдХреВ рдкрд░ рдЧреАрд╡реЗрдВрдЯ рд╡рд░реНрдХрд░реНрд╕ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЧрдирд┐рдХреЛрд░реНрди рдЪрд▓рд╛ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд░реНрдХрд░реНрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рдФрд░ рдЕрднреА рднреА рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ H12 30 рд╕реЗрдХрдВрдб рдХрд╛ рд╣рд░реЛрдХреВ рдХрдЯрдСрдл рдорд┐рд▓реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ H12 рдФрд░ [CRITICAL] Worker Timeout рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдкреВрд░реЗ рдбрд╛рдпрдиреЛ рдХреЛ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ (рдХрднреА-рдХрднреА рдПрдХ рдШрдВрдЯреЗ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рдж рдореЗрдВ рдпрд╛ рдЕрдзрд┐рдХрддрдо-рдЕрдиреБрд░реЛрдз рд╣рд┐рдЯ рд╣реЛрдиреЗ рддрдХ)ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЧрдирд┐рдХреЛрд░реНрди рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 28 рд╕реЗрдХрдВрдб рддрдХ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рд╣реЗрд░реЛрдХреВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдХрд╛рдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛ рдЬрд╛рдПред рдПрдХ рд╣реА (рдпрд╛ рдмрд╣реБрдд рд╕рдорд╛рди) рд╕рдорд╕реНрдпрд╛ рджрд┐рди рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рдмрд╛рд░ рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рдмрдиреА рд░рд╣рддреА рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░ рдпрд╣ H13 (рдХрдиреЗрдХреНрд╢рди рдмрдВрдж) рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЧрдирд┐рдХреЛрд░реНрди рдЗрд╕реЗ рдХрд╛рдЯ рд░рд╣рд╛ рд╣реИред рдЙрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдпрд╛рддрд╛рдпрд╛рдд рдореЗрдВ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдпрд╣рд╛рдБ рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ:

web: newrelic-admin run-program gunicorn publisher.wsgi -b 0.0.0.0:$PORT -w 4 --max-requests 1000 --timeout 28 --preload

рдШрдЯрдирд╛рдУрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдХреБрдЫ рдЕрдиреБрд░реЛрдз рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмрд╛ (5+ рд╕реЗрдХрдВрдб) рд▓рдЧрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдПрдХ рдЕрдиреБрд░реЛрдз H12 рдЯрд╛рдЗрдордЖрдЙрдЯ (рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЗрд╕реЗ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдФрд░ рдЕрдиреБрд░реЛрдз рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрд╕рд╛рдзрд╛рд░рдг рд░реВрдк рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд╕рд╛рде (20) рд╕реЗрдХрдВрдб)ред рддрдм рд╕реЗ рдпрд╣ рд╢реБрджреНрдз рдПрдЪ 11 30 рд╕реЗрдХреЗрдВрдб рд╣реЗрд░реЛрдХреВ рдХрдЯрдСрдл рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдбрд╛рдпрдиреЛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░рддрд╛ред

рд╣рдо рдЕрдкрдиреЗ рд╡реЗрдмрд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдирд┐рдХреЛрд░реНрди (v 18.0) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ рдЕрдЬрдЧрд░/рдбреАрдЬреЗрдВрдЧреЛ рдЪрд▓рд╛рддрд╛ рд╣реИ)ред

рд╣рдо newrelic рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рдЙрдиреНрдирдд рдЕрдиреБрд░реЛрдз рдХрддрд╛рд░рдмрджреНрдз рд╕рдордп рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЕрдиреНрдп рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдереНрд░реВрдкреБрдЯ рдпрд╛ рдЕрдиреНрдп рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╛рдЗрдХреНрд╕ рдирд╣реАрдВ рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдПрдирдЖрд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рдо рд▓реЙрдЧ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдФрд░ рддреНрд░реБрдЯрд┐ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдкрд░рдЯреНрд░реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

Oct 15 15:08:53 nutrislice-stockton heroku/router: at=info method=GET path=/marketingtools/api/slides/?format=json-p&callback=_jqjsp&_1381871332239= host=oldham.nutrislice.com fwd="74.138.24.95" dyno=web.2 connect=15ms service=216ms status=200 bytes=21 Oct 15 15:08:54 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/menutypes/?format=json-p&callback=_jqjsp&_1381871332232= host=oldham.nutrislice.com fwd="74.138.24.95" dyno=web.2 connect=2ms service=90ms status=200 bytes=231 Oct 15 15:08:56 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/schools/?format=json-p&callback=_jqjsp&_1381871323514= host=oldham.nutrislice.com fwd="74.138.24.95" dyno=web.2 connect=3ms service=94ms status=200 bytes=5986 Oct 15 15:09:03 nutrislice-stockton heroku/router: at=info method=HEAD path=/heartbeat/ host=stockton.nutrislice.com fwd="54.247.188.179" dyno=web.2 connect=3ms service=23ms status=200 bytes=0 Oct 15 15:09:13 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/settings/?format=json-p&callback=_jqjsp&_1381871237946= host=pcsb.nutrislice.com fwd="66.87.110.127" dyno=web.2 connect=5ms service=166ms status=200 bytes=468 Oct 15 15:09:20 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/settings/?format=json-p&callback=_jqjsp&_1381871323611= host=oldham.nutrislice.com fwd="74.138.24.95" dyno=web.2 connect=6ms service=183ms status=200 bytes=453 Oct 15 15:09:40 nutrislice-stockton heroku/router: at=info method=GET path=/ host=nps.nutrislice.com fwd="74.190.240.28" dyno=web.2 connect=1ms service=260ms status=200 bytes=35951 Oct 15 15:09:55 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/api/list/school-menu-profile/87/menu-type/43/?format=json-p&callback=jQuery18008709754704032093_1381871379465&_=1381871393589 host=nps.nutrislice.com fwd="74.190.240.28" dyno=web.2 connect=15ms service=129ms status=200 bytes=400 Oct 15 15:09:55 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/api/list/school-menu-profile/306/menu-type/187/?format=json-p&callback=jQuery180013075259909965098_1381873891397&_=1381873896600 host=sdhc.nutrislice.com fwd="72.186.96.121" dyno=web.2 connect=2ms service=33ms status=200 bytes=486 Oct 15 15:10:00 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/186/?smp=257 host=coppellisd.nutrislice.com fwd="76.199.114.157" dyno=web.2 connect=7ms service=103ms status=200 bytes=323 Oct 15 15:10:00 nutrislice-stockton app/web.2: INFO http://stockton.nutrislice.com/heartbeat/ Pinged from IP: 10.190.159.205 -- AGENT: NewRelicPinger/1.0 (269661) Oct 15 15:10:00 nutrislice-stockton heroku/router: at=info method=HEAD path=/heartbeat/ host=stockton.nutrislice.com fwd="50.112.95.211" dyno=web.2 connect=1ms service=10ms status=200 bytes=0 Oct 15 15:10:09 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/239/?smp=341 host=edenpr.nutrislice.com fwd="75.73.177.139" dyno=web.2 connect=8ms service=334ms status=200 bytes=277 Oct 15 15:10:16 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/395/?smp=306 host=sdhc.nutrislice.com fwd="72.186.96.121" dyno=web.2 connect=1ms service=96ms status=200 bytes=245 Oct 15 15:10:20 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/391/?smp=305 host=sdhc.nutrislice.com fwd="173.170.34.126" dyno=web.2 connect=32ms service=5207ms status=200 bytes=290 Oct 15 15:10:22 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/350/?smp=305 host=sdhc.nutrislice.com fwd="173.170.34.126" dyno=web.2 connect=60ms service=7676ms status=200 bytes=1147 Oct 15 15:10:31 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/258/?smp=341 host=edenpr.nutrislice.com fwd="75.73.177.139" dyno=web.2 connect=42ms service=517ms status=200 bytes=26974 Oct 15 15:10:43 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/schools/?format=json-p&callback=_jqjsp&_1381871432885= host=ocps.nutrislice.com fwd="71.47.21.97" dyno=web.2 connect=1490ms service=9883ms status=200 bytes=1565 Oct 15 15:10:52 nutrislice-stockton heroku/router: at=error code=H13 desc="Connection closed without response" method=GET path=/ host=jordandistrict.nutrislice.com fwd="71.199.48.37" dyno=web.2 connect=1959ms service=29230ms status=503 bytes=0 Oct 15 15:10:52 nutrislice-stockton app/web.2: 2013-10-15 21:10:50 [2] [CRITICAL] WORKER TIMEOUT (pid:12) Oct 15 15:10:52 nutrislice-stockton app/web.2: 2013-10-15 21:10:50 [2] [CRITICAL] WORKER TIMEOUT (pid:12) Oct 15 15:10:52 nutrislice-stockton app/web.2: 2013-10-15 21:10:50 [26] [INFO] Booting worker with pid: 26 Oct 15 15:10:52 nutrislice-stockton app/web.2: 2013-10-15 21:10:50,930 (26/MainThread) newrelic.core.agent INFO - New Relic Python Agent (2.0.0.1) Oct 15 15:10:54 nutrislice-stockton heroku/router: at=info method=GET path=/surveys/api/activesurveycount/?format=json-p&callback=_jqjsp&_1381871433429= host=henrico.nutrislice.com fwd="96.248.5.53" dyno=web.2 connect=1181ms service=20074ms status=200 bytes=32 Oct 15 15:10:55 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/schooltypes/?format=json-p&callback=_jqjsp&_1381871433374= host=henrico.nutrislice.com fwd="96.248.5.53" dyno=web.2 connect=1136ms service=20393ms status=200 bytes=142 Oct 15 15:11:01 nutrislice-stockton app/web.2: using heroku production settings Oct 15 15:11:01 nutrislice-stockton app/web.2: WARNING /app/.heroku/python/lib/python2.7/site-packages/django/utils/hashcompat.py:9: DeprecationWarning: django.utils.hashcompat is deprecated; use hashlib instead Oct 15 15:11:01 nutrislice-stockton app/web.2: DeprecationWarning) Oct 15 15:11:01 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/settings/?format=json-p&callback=_jqjsp&_1381871432922= host=ocps.nutrislice.com fwd="71.47.21.97" dyno=web.2 connect=1435ms service=23198ms status=200 bytes=486 Oct 15 15:11:03 nutrislice-stockton app/web.2: WARNING /app/.heroku/python/lib/python2.7/site-packages/django/conf/urls/defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead Oct 15 15:11:03 nutrislice-stockton app/web.2: DeprecationWarning) Oct 15 15:11:05 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/schooltypes/?format=json-p&callback=_jqjsp&_1381871443300= host=martinschools.nutrislice.com fwd="99.114.229.202" dyno=web.2 connect=1089ms service=20040ms status=200 bytes=268 Oct 15 15:11:10 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/weeks/school-menu-profile/135/menu-type/63/2013/10/14/?format=json-p&callback=_jqjsp&_1381871439548= host=henrico.nutrislice.com fwd="96.248.5.53" dyno=web.2 connect=1018ms service=30001ms status=503 bytes=0 Oct 15 15:11:15 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/sales/?format=json-p&callback=_jqjsp&_1381871443267= host=martinschools.nutrislice.com fwd="99.114.229.202" dyno=web.2 connect=1096ms service=30001ms status=503 bytes=0 Oct 15 15:11:15 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/schools/?format=json-p&callback=_jqjsp&_1381871443296= host=martinschools.nutrislice.com fwd="99.114.229.202" dyno=web.2 connect=1108ms service=30000ms status=503 bytes=0 Oct 15 15:11:23 nutrislice-stockton heroku/router: at=info method=GET path=/menu/api/weeks/school-menu-profile/48/menu-type/21/2013/10/14/?format=json-p&callback=_jqjsp&_1381871449451= host=martinschools.nutrislice.com fwd="99.114.229.202" dyno=web.2 connect=1114ms service=31756ms status=200 bytes=48771 Oct 15 15:11:26 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/sales/?format=json-p&callback=_jqjsp&_1381871455129= host=pcsb.nutrislice.com fwd="66.87.110.127" dyno=web.2 connect=990ms service=30001ms status=503 bytes=0 Oct 15 15:11:26 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/schools/?format=json-p&callback=_jqjsp&_1381871455291= host=pcsb.nutrislice.com fwd="66.87.110.127" dyno=web.2 connect=1028ms service=30008ms status=503 bytes=0 Oct 15 15:11:31 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menuwidgets/179/?smp=6 host=cusdnutrition.nutrislice.com fwd="68.99.246.16" dyno=web.2 connect=2492ms service=30000ms status=503 bytes=0 Oct 15 15:11:32 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menuwidgets/192/?smp=6 host=cusdnutrition.nutrislice.com fwd="68.99.246.16" dyno=web.2 connect=2713ms service=30003ms status=503 bytes=0 Oct 15 15:11:39 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/ host=hebisd.nutrislice.com fwd="38.107.226.1" dyno=web.2 connect=2115ms service=30001ms status=503 bytes=0 Oct 15 15:11:45 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/weeks/school-menu-profile/44/menu-type/19/2013/10/14/?format=json-p&callback=_jqjsp&_1381871472583= host=pcsb.nutrislice.com fwd="66.87.110.127" dyno=web.2 connect=2168ms service=30000ms status=503 bytes=0 Oct 15 15:11:48 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/marketingtools/api/active-announcements/?format=json-p&callback=_jqjsp&_1381871476287= host=sdhc.nutrislice.com fwd="65.34.72.116" dyno=web.2 connect=1927ms service=30000ms status=503 bytes=0 Oct 15 15:11:48 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/surveys/api/activesurveycount/?format=json-p&callback=_jqjsp&_1381871476543= host=sdhc.nutrislice.com fwd="65.34.72.116" dyno=web.2 connect=2117ms service=30000ms status=503 bytes=0 Oct 15 15:11:48 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/schooltypes/?format=json-p&callback=_jqjsp&_1381871476481= host=sdhc.nutrislice.com fwd="65.34.72.116" dyno=web.2 connect=2111ms service=30009ms status=503 bytes=0 Oct 15 15:11:50 nutrislice-stockton app/web.2: 2013-10-15 15:11:32,597 (26/NR-Activate-Session/nutrislice-stockton) newrelic.core.data_collector INFO - Successfully registered New Relic Python agent where app_name='nutrislice-stockton', pid=26, redirect_host='collector-2.newrelic.com' and agent_run_id=474482914, in 40.26 seconds. Oct 15 15:11:50 nutrislice-stockton app/web.2: INFO Successfully registered New Relic Python agent where app_name='nutrislice-stockton', pid=26, redirect_host='collector-2.newrelic.com' and agent_run_id=474482914, in 40.26 seconds. Oct 15 15:11:52 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/marketingtools/api/active-announcements/?format=json-p&callback=_jqjsp&_1381871480294= host=sdhc.nutrislice.com fwd="65.34.72.116" dyno=web.2 connect=1689ms service=30006ms status=503 bytes=0 Oct 15 15:11:55 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/settings/?format=json-p&callback=_jqjsp&_1381871482566= host=henrico.nutrislice.com fwd="72.84.233.45" dyno=web.2 connect=2067ms service=30004ms status=503 bytes=0 Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:41 [2] [CRITICAL] WORKER TIMEOUT (pid:26) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:41 [2] [CRITICAL] WORKER TIMEOUT (pid:26) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:41 [29] [INFO] Booting worker with pid: 29 Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:41,067 (29/MainThread) newrelic.core.agent INFO - New Relic Python Agent (2.0.0.1) Oct 15 15:11:57 nutrislice-stockton app/web.2: using heroku production settings Oct 15 15:11:57 nutrislice-stockton app/web.2: WARNING /app/.heroku/python/lib/python2.7/site-packages/django/utils/hashcompat.py:9: DeprecationWarning: django.utils.hashcompat is deprecated; use hashlib instead Oct 15 15:11:57 nutrislice-stockton app/web.2: DeprecationWarning) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:44 [2] [CRITICAL] WORKER TIMEOUT (pid:23) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:44 [2] [CRITICAL] WORKER TIMEOUT (pid:23) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:44 [32] [INFO] Booting worker with pid: 32 Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:44,154 (32/MainThread) newrelic.core.agent INFO - New Relic Python Agent (2.0.0.1) Oct 15 15:11:57 nutrislice-stockton app/web.2: using heroku production settings Oct 15 15:11:57 nutrislice-stockton app/web.2: WARNING /app/.heroku/python/lib/python2.7/site-packages/django/utils/hashcompat.py:9: DeprecationWarning: django.utils.hashcompat is deprecated; use hashlib instead Oct 15 15:11:57 nutrislice-stockton app/web.2: DeprecationWarning) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:48 [2] [CRITICAL] WORKER TIMEOUT (pid:14) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:48 [2] [CRITICAL] WORKER TIMEOUT (pid:14) Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:48 [35] [INFO] Booting worker with pid: 35 Oct 15 15:11:57 nutrislice-stockton app/web.2: 2013-10-15 21:11:48,273 (35/MainThread) newrelic.core.agent INFO - New Relic Python Agent (2.0.0.1) Oct 15 15:11:57 nutrislice-stockton app/web.2: using heroku production settings Oct 15 15:11:57 nutrislice-stockton app/web.2: WARNING /app/.heroku/python/lib/python2.7/site-packages/django/utils/hashcompat.py:9: DeprecationWarning: django.utils.hashcompat is deprecated; use hashlib instead Oct 15 15:11:57 nutrislice-stockton app/web.2: DeprecationWarning) Oct 15 15:11:57 nutrislice-stockton heroku/router: at=info method=GET path=/menuwidgets/353/?smp=306 host=sdhc.nutrislice.com fwd="72.186.96.121" dyno=web.2 connect=21ms service=76ms status=200 bytes=255 Oct 15 15:12:00 nutrislice-stockton app/web.2: 2013-10-15 21:11:54 [2] [CRITICAL] WORKER TIMEOUT (pid:13) Oct 15 15:12:00 nutrislice-stockton app/web.2: 2013-10-15 21:11:54 [2] [CRITICAL] WORKER TIMEOUT (pid:13) Oct 15 15:12:00 nutrislice-stockton app/web.2: 2013-10-15 21:11:54 [38] [INFO] Booting worker with pid: 38 Oct 15 15:12:00 nutrislice-stockton app/web.2: 2013-10-15 21:11:54,388 (38/MainThread) newrelic.core.agent INFO - New Relic Python Agent (2.0.0.1) Oct 15 15:12:00 nutrislice-stockton app/web.2: using heroku production settings Oct 15 15:12:01 nutrislice-stockton app/web.2: WARNING /app/.heroku/python/lib/python2.7/site-packages/django/utils/hashcompat.py:9: DeprecationWarning: django.utils.hashcompat is deprecated; use hashlib instead Oct 15 15:12:01 nutrislice-stockton app/web.2: DeprecationWarning) Oct 15 15:12:02 nutrislice-stockton app/web.2: WARNING /app/.heroku/python/lib/python2.7/site-packages/django/conf/urls/defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead Oct 15 15:12:02 nutrislice-stockton app/web.2: DeprecationWarning) Oct 15 15:12:03 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menuwidgets/353/?smp=306 host=sdhc.nutrislice.com fwd="108.9.154.78" dyno=web.2 connect=3650ms service=30006ms status=503 bytes=0 Oct 15 15:12:03 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menuwidgets/395/?smp=306 host=sdhc.nutrislice.com fwd="108.9.154.78" dyno=web.2 connect=3581ms service=30006ms status=503 bytes=0 Oct 15 15:12:06 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/settings/?format=json-p&callback=_jqjsp&_1381871492466= host=canyonsdistrict.nutrislice.com fwd="174.52.155.49" dyno=web.2 connect=3582ms service=30001ms status=503 bytes=0 Oct 15 15:12:09 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/mobile/api_version/?deviceType=iphone host=pasco.nutrislice.com fwd="173.65.148.9" dyno=web.2 connect=3837ms service=30004ms status=503 bytes=0 Oct 15 15:12:11 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/mobile/api_version/?deviceType=iphone host=canyonsdistrict.nutrislice.com fwd="174.52.155.49" dyno=web.2 connect=3987ms service=30001ms status=503 bytes=0 Oct 15 15:12:11 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/schools/?format=json-p&callback=_jqjsp&_1381871497105= host=canyonsdistrict.nutrislice.com fwd="174.52.155.49" dyno=web.2 connect=3962ms service=30001ms status=503 bytes=0 Oct 15 15:12:11 nutrislice-stockton heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/menu/api/menutypes/?format=json-p&callback=_jqjsp&_1381871497128= host=canyonsdistrict.nutrislice.com fwd="174.52.155.49" dyno=web.2 connect=4020ms service=30007ms status=503 bytes=0
рдФрд░ H12 рдЯрд╛рдЗрдо-рдЖрдЙрдЯ рдФрд░ [рдХреНрд░рд┐рдЯрд┐рдХрд▓] рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдпрд╣ "рдбреЗрде-рд╕рд░реНрдкрд┐рд▓" рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреАред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдЕрдЧрд░ рдпрд╣ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдПрдХ рдЕрд▓рдЧ рд╣реИ? рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЧрдирд┐рдХреЛрд░реНрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдмрд╛рдж рднреА рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рд╣реЗрд░реЛрдХреВ рдореБрджреНрджрд╛ рд╣реИред

:+1: рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ Heroku . рдкрд░ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ

@sprynmr @richardkeen рдХреНрдпрд╛ рдЖрдк рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЧрдирд┐рдХреЛрд░реНрди рд▓реЙрдиреНрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рд▓реЙрдЧ рдЖрдк рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдорджрдж рдорд┐рд▓реЗрдЧреАред

@nebstrebor рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?

рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓реЙрдиреНрдЪ рдХрд░ рд░рд╣реЗ рдереЗ:
web: newrelic-admin run-program python manage.py run_gunicorn -b "0.0.0.0:$PORT" --log-level=DEBUG -w 3 -k gevent --max-requests 250

рд▓реЙрдЧ-рд▓реЗрд╡рд▓ DEBUG рдХреЗ рд╕рд╛рде рднреА рд╣рдореЗрдВ рд▓реЙрдЧ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛ред gevent рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рд╕реЗ рдЕрднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред

@sprynmr рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╣рдЯрд╛ рджреЗрдВ? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ gevent рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг?

рд╣рдо 1.0rc2 ред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдирд┐рд╢реНрдЪрд┐рддред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЕрднреА рд╣рдорд╛рд░реЗ рдЙрддреНрдкрд╛рджрди рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЪрд╛рд▓реВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд░ рд╣реЗрд░реЛрдХреВ рдкреГрд╖реНрда рдкрдврд╝рдирд╛ рд╡реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ well under 30 seconds, such as 10 or 15 рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЧрдирд┐рдХреЛрд░реНрди рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛?

рд╡реИрд╕реЗ рднреА gevent рдХреЗ рд╕рд╛рде рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛ рд╢рд╛рдпрдж рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рдЧреНрд░реАрдирд▓реЗрдЯ рдХреЗ рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдг рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЧреНрд░реАрдирд▓реЗрдЯ/рд╕реНрд╡реАрдХреГрдд рдХрдиреЗрдХреНрд╢рди рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рдВрднрд╡рддрдГ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд╡реАрдХреГрдд рд╕реЙрдХреЗрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреЛрдИ рдЕрдиреНрдп рдШрдЯрдирд╛ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓реА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЧрдирд┐рдХреЛрд░реНрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЬрд╛рдВрдЪрдирд╛ рд╣реИ ..

рджрд┐рд▓рдЪрд╕реНрдкред рдирд╣реАрдВ, рд╣рдордиреЗ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред

: +1: рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдкрд░ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред @Jwpe / @sprynmr рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХрднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реБрдП 2 рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд┐рд▓рд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж!

@dencold рдХреНрдпрд╛ рдЖрдкрдиреЗ https://github.com/benoitc/gunicorn/issues/588#issuecomment -29267541 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА

рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕рдХреЗреЛрдХреВ рдореЗрдВ рдХреЛрдИ рдЦрд╛рддрд╛ рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рднреА рд╡рд╣реА рд▓реЙрдЧ рд╣реИрдВ?

рд╣рд╛рдп @benoitc , рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рд▓реЙрдЧ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕реА рд╣реА рд╣реИрдВ рдЬреИрд╕реА @Jwpe рдФрд░ @nebstrebor рдиреЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдереАред рдореБрдЭреЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдмрд┐рдЯреНрд╕ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдпрджрд┐ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА, рддреЛ рдмрд╕ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

рдореИрдВ рдЖрдкрдХреА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдЖрдкрдХреА рд╕рд▓рд╛рд╣ рд▓реЗрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЧрдирд┐рдХреЛрд░реНрди рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдЙрд╕рдХреЗреЛрдХреВ рд░рд╛рдЙрдЯрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдХрдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдпреЗ рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдФрд░ рдлрд┐рд░ рдкреВрд░реЗ рдЧрдирд┐рдХреЛрд░реНрди рд╕рд░реНрд╡рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрддреНрддрд░рджрд╛рдпреА рджреЗрдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рд╣реИред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдирд┐рджрд╛рди рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЙрд╕рдХреЗреЛрдХреВ рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ @dencold рдореБрдЭреЗ рдХрднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдПрдХ рдмрд╣реБрдд рд╣реА рдЧрд╣рд░рд╛ рд░рд╣рд╕реНрдпрдордп рдмрдЧ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рд╕реЗ рд▓рдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛ред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реЛрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрд┐рдЯ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред

@dencold рдХреНрдпрд╛ рдЖрдк рднреА рдирдП рдЕрд╡рд╢реЗрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@benoitc рд╣рд╛рдБ, рд╣рдо рдирдП рдЕрд╡рд╢реЗрд╖ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@dencold рдЗрд╕реА рддрд░рд╣, рд╣рдордиреЗ рдХрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рдерд╛ рдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рдерд╛, рдФрд░ рдореВрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рддреНрд░реБрдЯрд┐ рдХреА рдЧрдВрднреАрд░ рдкреНрд░рдХреГрддрд┐ - рдЪреВрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рдордиреЗ рдереА - рдиреЗ рд╣рдореЗрдВ рдЕрдВрддрд░рд┐рдо рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП WSGI рд╕рд░реНрд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдФрд░ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдФрд░ рдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

@Jwpe рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдЬреАрдм рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдХрднреА рднреА рдЧрдирд┐рдХреЛрд░реНрди рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдХрдЯрдСрдл рдХрд╛ рд╕рдордп 15 рд╕реЗрдХрдВрдб рддрдХ рдерд╛ рдФрд░ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣рд╛ рдерд╛

рд░рд╡рд┐рд╡рд╛рд░, 26 рдЬрдирд╡рд░реА 2014 рдХреЛ, рдмреЗрдиреЛрдЗрдЯ рдЪреЗрд╕рдиреЗрдЙ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@Jwpe https://github.com/Jwpe рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЛрд╢рд┐рд╢ рдХреА?
рд╕рдорд╛рдзрд╛рди? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдЬреАрдм рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдХрднреА рднреА рдЧрдирд┐рдХреЛрд░реНрди рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ
рдЕрдкрдиреЗ рдЖрдкред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHub рдкрд░ рджреЗрдЦреЗрдВhttps://github.com/benoitc/gunicorn/issues/588#issuecomment -33316333
.

рдмреЗрди рд░реЙрдмрд░реНрдЯреНрд╕
рд╕реАрдЯреАрдУ
рдиреНрдпреВрдЯреНрд░рд┐рд╕реНрд▓рд╛рдЗрд╕, рдЗрдВрдХред
866-524-3444 рдПрдХреНрд╕рдЯреЗрдВрд╢рди 702
[email protected]

@Jwpe / @nebstrebor рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

@benoitc рд╣рдордиреЗ рдЕрдкрдиреЗ рд╣рд░реЛрдХреВ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕ рдкрд░ рдХрдбрд╝реА рдирдЬрд░ рд░рдЦреВрдВрдЧрд╛ред рдпрджрд┐ рдирдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рддреЛ рдореИрдВ рд╡рд╛рдкрд╕ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рдорджрдж рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдореИрдВ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реВрдВред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд╛рд░рдг рдХреА рддрд╣ рддрдХ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@benoitc рд╕рд┐рд░реНрдл рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХрдо рд╕рдордп рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рджреЛ рд╕рдкреНрддрд╛рд╣ рд╣реЛ рдЧрдП рд╣реИрдВред рд╣рдордиреЗ рдХреБрдЫ рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рджреЗрдЦреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рдЧрдирд┐рдХреЛрд░реНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрддреНрддрд░рджрд╛рдпреА рд╣реЛ рдЬрд╛рддреА рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ 30 рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдкреИрджрд╛ рдХрд░ рд░рд╣реЗ рдереЗред

рдмрд╕ рдЖрдкрдХреЛ рддреИрдирд╛рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣рд╛рдБ рд╕рднреА рдорджрдж рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

рдПрдХ рд╣реА [рдХреНрд░рд┐рдЯрд┐рдХрд▓] рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкреАрдЖрдИ рдореЗрдВ рдЧрдирд┐рдХреЛрд░реНрди рдХреЗ рд╕рд╛рде Django рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдХреЛрдИ рд╕рдорд╛рдЪрд╛рд░ рдирд╣реАрдВред

рдореБрдЭреЗ рд╡рд╣реА [рдХреНрд░рд┐рдЯрд┐рдХрд▓] рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯрд╛рдЗрдордЖрдЙрдЯ (рд▓рдВрдмреЗ рдЕрдиреБрд░реЛрдз) рдХреЗ рдмрд╛рдж, рдмрдВрджреВрдХрдзрд╛рд░реА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ рдФрд░ рдирдП рдХреЛ рдЬрдиреНрдо рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирдпрд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рд╕реНрдерд╛рди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ рд░рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЧрдирд┐рдХреЛрд░реНрди рдЗрд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдорд╛рд░рддрд╛ рд╣реИ :(ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдореБрджреНрджрд╛ рдЧреАрд╡реЗрдВрдЯ рдФрд░ рд╕рдВрддрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдерд╛ (https://github.com/getsentry/raven-python/issues/305)ред рд╕рдВрддрд░реА рдмрд╕ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИ .
рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рднреАрддрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ "рдЯрд╛рдЗрдордЖрдЙрдЯ" рд╕рдордп рдХреЗ рднреАрддрд░ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд┐рдВрдХ рд╡рд░реНрдХрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд╣реАрдВ рд╣реИред рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд▓рдВрдмреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рднреА рдордзреНрдпрд╕реНрде рдХреЗ рд▓рд┐рдП рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдордп рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдордп рд╣реИред

рдПрдХ рдорд╛рдпрдиреЗ рдореЗрдВ, рдЧрдирд┐рдХреЛрд░реНрди рдореЗрдВ рдХреЛрдИ "рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ" рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдВ, рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ async рдореЗрдВ рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдЬрд╣рд╛рдВ async "рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ "рд╕реЙрдХреЗрдЯ - рд░реАрдб / рд░рд╛рдЗрдЯ") рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдХрд╛рд░рдг рд╣реИрдВред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк (рдЬрд╣рд╛рдВ рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рд╣реИ) рдкрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЧрдирд┐рдХреЛрд░реНрди рд▓реЙрдЧ рдореЗрдВ рдЙрди 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджреЗрд╢ "рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ" рд╣реИред

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП? рдЗрд╕рд╕реЗ рд▓рдВрдмреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд╛рд▓реЗ рдРрдкреНрд╕ рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдЯрдХреНрдХрд░ рджреЗрдВрдЧреЗред

рдРрд╕рд╛ рдордд рд╕реЛрдЪреЛ, рдХреНрдпреЛрдВрдХрд┐
1) рдЕрдиреБрд░реЛрдз рд░рди-рдЯрд╛рдЗрдо рдорд╛рдкрдирд╛ рдХрдард┐рди рд╣реИ, рд╣рдо рднреАрдЦ рдорд╛рдВрдЧрдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдордп рдЕрдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
2) рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ "рдирд┐рд╖реНрдкрд╛рджрди рдЗрдХрд╛рдЗрдпреЛрдВ" (рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рдХреЗ рдмреАрдЪ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛) рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдлрд┐рд░ рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рд╡реИрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реИ
рд╕рд░реНрд╡рд░ рд▓реЛрдб рдХреЗ рдХрд╛рд░рдг рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛ рдкрд╣рд▓реЗ рд░рди рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд╡рд╣рд╛рдБ рд╣реИ
рдпрд╣рд╛рдБ рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ? рдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдмрдВрдж рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдФрд░ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рдЪрд╛рд▓рди?
рдЬреБрд▓рд╛ 30, 2014 1:14 pm рдкрд░, "Mkrtich" [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдРрд╕рд╛ рдордд рд╕реЛрдЪреЛ, рдХреНрдпреЛрдВрдХрд┐
1) рдЕрдиреБрд░реЛрдз рд░рди-рдЯрд╛рдЗрдо рдорд╛рдкрдирд╛ рдХрдард┐рди рд╣реИ, рд╣рдо рд╕рдордп рдЕрдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рднреАрдЦ рдорд╛рдВрдЧрдирд╛ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрдд рдореЗрдВред
2) рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ "рдирд┐рд╖реНрдкрд╛рджрди рдЗрдХрд╛рдЗрдпреЛрдВ" (рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛) рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЬрд╛рдирддрд╛ рд╣реВрдВ
рдЬреЛ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рдХреЗ рдмреАрдЪ рдЪрд▓рддрд╛ рд╣реИ) gevent рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/benoitc/gunicorn/issues/588#issuecomment -50673040ред

рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ 2 рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЙрдЧ рд╣реЛрдВред
1) рдПрдХ рд╡рд░реНрддрдорд╛рди рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдз рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
2) рджреВрд╕рд░рд╛ рд╡рд░реНрдХрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛрдЧрд╛ред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ

рд╣рдордиреЗ рд╣реЗрд░реЛрдХреВ рдХреЗ рд▓рд┐рдП рдпреВрдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдмреЗрд╣рддрд░ рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИ ... рдЧрдирд┐рдХреЛрд░реНрди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕реБрдЭрд╛рд╡ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ .

@nebstrebor рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрдо рдХрд░рдиреЗ рдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛?

@CrazyPython рдЯрд┐рдХрдЯ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореМрдЬреВрдж рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИ, рдХреБрдЫ рдФрд░ рдФрд░ рд╕рд╣ :)

рд╣рд╛рдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдЫрд┐рдЯрдкреБрдЯ рдереА
рдкрд░реНрдпрд╛рдкреНрдд (рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛) рдФрд░ рдЗрддрдирд╛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд┐ рд╣рдореЗрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛
рд╡рд╣ рдХрджрдо рдЙрдард╛рдПрдВ (рдпрд╣ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Gunicorn рдкрд╕рдВрдж рд╣реИ,
рдФрд░ рд╣рдо рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╣реЗрд░реЛрдХреВ рдХреЗ рдмрд╛рд╣рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдмреЗрди рд░реЙрдмрд░реНрдЯреНрд╕
рд╕реАрдЯреАрдУ рдФрд░ рд╕рд╣-рд╕рдВрд╕реНрдерд╛рдкрдХ
рдиреНрдпреВрдЯреНрд░рд┐рд╕реНрд▓рд╛рдЗрд╕, рдЗрдВрдХред
[email protected]
рд╕реЗрд▓ - 801-735-7845

рдордВрдЧрд▓рд╡рд╛рд░, 30 рдЬреВрди, 2015 рдХреЛ рд╕реБрдмрд╣ 8:08 рдмрдЬреЗ, рдмреЗрдиреЛрдЗрдЯ рдЪреЗрд╕рдиреЗрдЙ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@nebstrebor https://github.com/nebstrebor рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЖрдкрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА
рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрдо рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡?

@CrazyPython https://github.com/CrazyPython рдЯрд┐рдХрдЯ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░реЗрдВ? рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИ,
рдХреБрдЫ рдФрд░ рдФрд░ рд╕рд╣ :)

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/benoitc/gunicorn/issues/588#issuecomment -117199606ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ (--рд╡рд░реНрдХрд░реНрд╕ 2) рдХреБрдЫ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд▓рдЯрдХ рдЧрдП, рдЕрдВрддрддрдГ рдорд╛рд░реЗ рдЧрдП (--рдЯрд╛рдЗрдордЖрдЙрдЯ 20), рдФрд░ рд╣рдо рддреБрд░рдВрдд рджреЛ рдПрдЪ 13 рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдПрдЪ 12 рдФрд░ рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ 10 рдорд┐рдирдЯ рдореЗрдВ, рдпрд╣ рдЬрд╛рд░реА рд░рд╣рд╛, рд╢реНрд░рдорд┐рдХреЛрдВ рдиреЗ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдФрд░ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдбрд╛рдпрдиреЛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред

рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдиреЛрдЯ рдирд╣реАрдВ рджреЗрдЦрд╛ - рд╣рдо рджреЛ H13s (рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж) рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЬрдм рд╣рдордиреЗ рдЕрдВрддрддрдГ SIGTERM рдЬрд╛рд░реА рдХрд┐рдпрд╛, рддреЛ рд╣рдордиреЗ H13s - 48 рдХреА рдмрд╛рдврд╝ рджреЗрдЦреА рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рд╡рд░реНрдХрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рд╣реИ (рдкрд╣рд▓реЗ рджреЛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рддрддреНрдХрд╛рд▓ рдПрдЪ 13 рджреЗрдЦрд╛)ред рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрджрд┐рдЧреНрдз рд▓рдЧрддрд╛ рд╣реИ ....

H13s рдпрд╛ H12s рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЙрд╕рдХреЗреЛрдХреВ рд╕реЗ рдХреБрдЫ рд╣реИ? рдкреЛрд░реНрдЯ рдХреИрд╕реЗ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЧрдирд┐рдХреЛрд░реНрди рдмрдВрдзрд╛ рд╣реЛрдЧрд╛? рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗреЛрдХреВ рдкреНрд░реЙрдХреНрд╕реА рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╕реЙрдХреЗрдЯ рдмрдВрдж рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк рдХрд┐рд╕ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд╣рд╛рдБ, рд╡реЗ рд╣рд░реЛрдХреВ рддреНрд░реБрдЯрд┐ рдХреЛрдб рд╣реИрдВ:
H12 - рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ - рдЖрдорддреМрд░ рдкрд░ 30s (https://devcenter.heroku.com/articles/error-codes#h12-request-timeout)
H13 - рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж - (https://devcenter.heroku.com/articles/error-codes#h13-connection-closed-without-response)

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рддреЛ рдЧрдирд┐рдХреЛрд░реНрди рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдФрд░ рдореИрдВ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛, рд╣рдо рдЧрдирд┐рдХреЛрд░реНрди 19.3.0 . рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ

рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡рд╣рд╛рдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд▓рдВрдмрд┐рдд рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯрд┐рдХрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрд░реЗ рдореИрдВ рднреА рдирдП рдЕрд╡рд╢реЗрд╖ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ procfile рдХреЗ рд╕рд╛рде рдЙрд╕рдХреЗреЛрдХреВ рдкрд░ рдЧрдирд┐рдХреЛрд░реНрди рдпреВрд╡рд┐рдХреЙрд░реНрди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

newrelic-admin run-program gunicorn -w 4 -k uvicorn.workers.UvicornWorker app.main:fastapi_app -b 0.0.0.0:${PORT:-5000} --log-level info --access-logfile=- --logger-class=gunicorn_color.Logger --preload

рдЬреИрд╕реЗ рд╣реА рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИ рдпрд╣ рдореБрдЭреЗ рдЗрд╕ рд▓реЙрдЧ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ:

2021-03-19T13:18:19.187532+00:00 heroku[web.1]: State changed from starting to up
2021-03-19T13:18:51.964740+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=api-app-clienti-pr-49.herokuapp.com request_id=8742009a-3e56-4f83-a147-97ff84d4e30b fwd="5.89.111.249" dyno=web.1 connect=1ms service=30003ms status=503 bytes=0 protocol=https
2021-03-19T13:19:04.292784+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/api" host=api-app-clienti-pr-49.herokuapp.com request_id=85b6320a-7728-4074-87eb-b0992e7c3f9d fwd="5.89.111.249" dyno=web.1 connect=3ms service=30001ms status=503 bytes=0 protocol=https
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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