Celery: рдлрд╝реАрдЪрд░: рдмреАрдЯ рдХреЛ рд╕рдорд╡рд░реНрддреА рдЖрдордВрддреНрд░рдгреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдирд╡ре░ 2010  ┬╖  48рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: celery/celery

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

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

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ рдЕрдВрдХреБрд░ 11 рд╕рд┐рдВрдЧрд▓-рдмреАрдЯ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдмреАрдЪ рд╢реЗрдбреНрдпреВрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╢реЗрдбреНрдпреВрд▓ рд╕реНрдерд┐рддрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред django-celery-рдмреАрдЯ рд╕реЗрд▓реЗрд░реА рдбреЙрдХреНрд╕ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓ рд╕рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЗрдбрд┐рд╕ рдХреЛ рдЕрдкрдиреЗ рд╕реЗрд▓реЗрд░реА рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред

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

рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд░реЗрдбрдмреАрдЯ рдХреЗ рд╕рд╛рде рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг exec celery beat --scheduler=redbeat.RedBeatScheduler --app=myproject.celery:app ) рдХреЗ рд╕рд╛рде, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдХрд╛рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

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

рдЗрд╕реЗ kombu.pidbox рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ celeryd рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдиреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЪреВрдВрдХрд┐ celerybeat рдХреЗрдВрджреНрд░реАрдХреГрдд рд╣реИ

рдПрдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рджреЗрдЦреЗрдВ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рд╣реЛрдиреЗ рд╣реИрдВ)ред рдпрджрд┐ рдЖрдк рдореБрдЭрд╕реЗ рдкреВрдЫреЗрдВ рддреЛ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИред

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

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА рдЬрд╣рд╛рдВ celerybeat рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдмреЙрдХреНрд╕ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдЪреНрдЫреЗ рдлреЙрд▓рдмреИрдХ рдХреЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЗрд╕рдХреА рдЬрдЧрд╣ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ celerybeat рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред celerybeat рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд HA рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?

рдХреНрдпрд╛ kombu.pidbox рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ celerybeat рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╕реЛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд╢реНрдЪрд┐рдд рдиреЛрдб рдирд╛рдо рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рдерд╛ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░ рд░рд╣рд╛ рдерд╛ рдпрджрд┐ рд╡рд╣ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдХрдИ рд╕рдХреНрд░рд┐рдп рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ - рд╢реЗрдбреНрдпреВрд▓ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

+1

+1

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдмрдбрд╝реА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ, рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

+9999;)
рдХреНрдпрд╛ kombu.pidbox рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ? рд╢рд╛рд░реНрдбрд┐рдВрдЧ рдФрд░ рдлреИрдВрд╕реА рдлреАрдЪрд░реНрд╕ рдХреЗ рдмрд┐рдирд╛ рднреА рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдФрд░ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЕрднреА рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рдкрд░ рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкрд┐рдбрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмреАрдЯ рдЙрдкрднреЛрдХреНрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреНрд░рд╕рд╛рд░рдг рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреИрд╕реЗ 'рдпрд╣рд╛рдВ рдХреЛрдИ рдмреАрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕?' рдЗрд╕реЗ рдЕрдкрдиреА рдкреНрд░рд╕рд╛рд░рдг рдХрддрд╛рд░ рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╕реБрдирдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИред

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

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

рдЗрд╕рдореЗрдВ рд▓реЙрдХ рдкрд░ 2 рд╕реЗрдХрдВрдб рдХрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рд╕реЗрдХрдВрдб рд▓реЙрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рд▓реЙрдХ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдПрдХ рдирдП рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ 2 рд╕реЗрдХрдВрдб рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХрддрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд░рдХреЗ amqp рдореЗрдВ рдПрдХ рд▓реЙрдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП `queue_declare('celerybeat.lock', рддрд░реНрдХ = {'x-expire': 2000}``

+1

рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛

+1

+1

+1 рднреА

+1

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ kombu.pidbox рд╕рдорд╛рдзрд╛рди рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд╢реЗрдпрд░ рдХрд░реЗрдВред рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧ рдЕрднреА рднреА рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдХреНрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдХреЛрдИ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЬрд╡рд╛рдЗрди рд╕реЗ рджреВрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ? рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

рдореБрдЭреЗ рдпрд╣ рд╕рд╛рд░ (https://gist.github.com/winhamwr/2719812) рдПрдХ Google рдЪрд░реНрдЪрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд┐рд▓рд╛ (https://www.google.co.in/search?q=celerybeat+lock&aq=f&oq=celerybeat+lock&aqs= chrome.0.57j62l3.2125j0&sourceid=chrome&ie=UTF-8)ред

рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рд╕реАрдзреЗ рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдкрд┐рдбрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд╢рд╛рдпрдж рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкрд░ рдИрдмреАрдПрд╕ рдХреЗ рд╕рд╛рде рдпрд╛ рд╢рд╛рдпрдж рдПрд╕ 3 рдмрд╛рд▓реНрдЯреА рдореЗрдВ ... celerybeat --pidfile=/path/to/shared/volume ред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ (3.1 рджреЗрд╡) рдХреЗ рдкрд╛рд╕ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдкрд╢рдк рдХрджрдо рд╣реИред рдХреНрдпрд╛ рдЧрдкрд╢рдк рдХрддрд╛рд░ рдФрд░ рдиреЗрддрд╛ рдЪреБрдирд╛рд╡ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдПрдореНрдмреЗрдбреЗрдб рдмреАрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ? рдпрд╛рдиреА рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрдореНрдмреЗрдбреЗрдб рдмреАрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдиреЗрддрд╛ рд╣реА рдЖрд╡рдзрд┐рдХ рдХрд╛рд░реНрдп рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕рд╛рдЭрд╛ рд╢реЗрдбреНрдпреВрд▓ рд╕рдВрдЧреНрд░рд╣рдг рдорд╛рди рд▓реЗрдЧрд╛ред

@mlavin рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдмреНрд░реЛрдХрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

рдкрд┐рдбрдмреЙрдХреНрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ Async I/O рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрд╕реВрдЪрдХ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рд░рд╣рд╛ рд╣реИред

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

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЕрдХреНрд╕рд░ рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рд╡реЗ рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдбрд┐рдореЛрдирд╛рдЗрдЬреЗрд╢рди рдореЗрдВ -B рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдлрд┐рд░ рдЙрд╕ рд╕реЗрдЯрдЕрдк рдХреЛ рджреВрд╕рд░реЗ рд╣реЛрд╕реНрдЯ рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рддрд╛ рд╣реИред

рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рд╡реЗ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХрд┐рд░рд╛рдП рдкрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ/рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдиреНрдп рдиреЛрдб (рдиреЛрдбреНрд╕) рдкрд░ рдлреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдЧрд▓ рдмреАрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдпреВрдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

+1, рд╣рдо рд╕рдорд╛рди рдЕрдореЗрдЬрд╝реЕрди рдИрд╕реА 2 рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рдзрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдмреАрдЪ рдореИрдВ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдпреВрдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ рдзрдиреНрдпрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

+1

+1

рдореИрдВ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдкрд░ рдорд╛рдорд▓рд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдПрдЪрдП рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рдХрд╛рдлреА рд╕рд░рд▓рддрд╛ рд╕реЗ, рдХреЗрд╡рд▓ 1 рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдпрд╣ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдПрдХрд▓ рдмрд┐рдВрджреБ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрддреНрдкрд╛рджрди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

@junaidch рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдЕрдЬрд╡рд╛рдЗрди

рдЕрдЬрд╡рд╛рдЗрди рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдареАрдХ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @23doorsред

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

рдореИрдВ рдЙрдк-рд╡рд░реНрдЧреАрдХрд░рдг рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдПрдХ рдХреНрд▓реАрдирд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд▓реБрд▓реБ рдореЗрдВ рд╣рдордиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреНрд▓рд╕реНрдЯрд░ рд╕рд┐рдВрдЧрд▓рдЯрди рдореИрдиреЗрдЬрд░ (рдмреАрдЯрдХреЙрдк рдирд╛рдо) рд▓рд┐рдЦрдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реЗрд▓реЗрд░реА рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдкреВрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдПрдХреНрд╕рдкрд╛рдпрд░рд┐рдВрдЧ рд░реЗрдбрд┐рд╕ рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЙрд╕ рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдЫреЛрдЯрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдорд░ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рджреВрд╕рд░рд╛ рдиреЛрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдирдпрд╛ рд╕реЗрд▓реЗрд░реАрдмреАрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ рдмреАрдЯрдХреЙрдк рдХреЛ рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд┐рдпрд╛ рд╣реИ ред

@ingmar рд╣рдордиреЗ рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ https://github.com/ybrs/single-beat рд▓рд┐рдЦрд╛ рдерд╛, рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА рдереА рдХрд┐ рдореИрдВрдиреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рджреЗрдЦреАред рд╣рдордиреЗ рдУрдкрдирд╕реЛрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрдореЛрдмреЗрд╢ рдпрд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдмреАрдЯрдХреЙрдк рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдЕрдВрддрд░ -, рд╣рдо рдкреАрдпреВрд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдмреАрдЯрдХреЙрдк рдЕрдзрд┐рдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рдирд┐рд░реНрднрд░рддрд╛рдПрдВ -, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдЪреНрдЪреЗ рдХреЗ stderr рдФрд░ stdout рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдпрджрд┐ рдмрдЪреНрдЪрд╛ рдПрдХ рд╣реА рдХреЛрдб рдХреЗ рд╕рд╛рде рдорд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ env рдЪрд░ред рдЗрд╕рд▓рд┐рдП рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

+1

+1

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

@ingmar рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдПрдХ рд╢реЙрдЯ рджреЗрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

+10 рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдПрдХ рдПрдХрд▓ рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рджреВрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдПрдХ рд╡рд┐рддрд░рд┐рдд рдХрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ

+1

+1

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ v5.0.0 рдореЗрдВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ https://github.com/celery/celery/milestones/v5.0.0

+1

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛, рдореМрдЬреВрджрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рддрд░рд╣ рдЗрд╕реЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдореЗрдВ 10 рд╕рд╛рд▓ рд▓рдЧреЗрдВрдЧреЗред

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

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

рдпрд╣ рдореБрджреНрджрд╛ рдЕрдм рдЫрд╣ рд╕рд╛рд▓ рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ, рдФрд░ рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЕрдХреНрд╕рд░ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдирдЧрд┐рдирдд рдХрдВрдкрдирд┐рдпрд╛рдВ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рдХрд┐рд╕реА рдиреЗ рднреА рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХреА рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрди рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реБрд╡рд┐рдзрд╛, рдмрдЧ рдлрд┐рдХреНрд╕, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЙрддреНрдкрд╛рджрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдирд╛ рдЖрдо рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рдПрдХ рддрд░рдл рдЧрд┐рди рд╕рдХрддрд╛ рд╣реВрдВ (рдЖрдк рдХрдорд╛рд▓ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рдЕрдм рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐рддрдирд╛ рднреЛрд▓рд╛ рдерд╛ :)

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

@ask рдореЗрд▓рд╛ рдХрд╛рдлреАред рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рд╡рд┐рддрд░рд┐рдд рдХреНрд░реЛрди рдПрдХ рдмрдбрд╝реА рдЬрдЯрд┐рд▓ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреВрд╕рд░реЗ рд╕реВрддреНрд░ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рд╕реЗрд▓реЗрд░реА рдХреЗ рдмрд╛рд╣рд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдкрдиреЗ рддрд░реНрдХ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@ask рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП NFS рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдЕрдВрджрд░ celerybeat-schedule рдлрд╝рд╛рдЗрд▓ ( celery.beat.PersistentScheduler рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреБрдХреНрдд) рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

PersistentScheduler рд╡рд░реНрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ shelve рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП celerybeat-schedule рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╡рд░реНрддреА рд▓реЗрдЦрди рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд░реЛрдХрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ shelve рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рдПрдХ рдЕрдВрд╢ рд╣реИ:

рд╢реЗрд▓реНрд╡ рдореЙрдбреНрдпреВрд▓ рд╢реЗрд▓реНрд╡реНрдб рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд╡рд░реНрддреА рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред (рдПрдХ рд╕рд╛рде рдХрдИ рдкрдврд╝рдиреЗ рдХреА рдкрд╣реБрдВрдЪ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред) рдЬрдм рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЗрд▓реНрдл рдЦреБрд▓рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдЗрд╕ рддрд░рд╣ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

celery -A project-name beat -l info -s /nfs_shared_volume/celerybeat-schedule

рдЬрд╣рд╛рдВ /nfs_shared_volume рд╕рд╛рдЭрд╛ рд╡реЙрд▓реНрдпреВрдо рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реЛрдЪрджрд╛рд░ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд), рдХреНрдпрд╛ рд╣рдо рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдПрдХ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓рдиреЗ рдкрд░ рднреА рд╢реЗрдбреНрдпреВрд▓ рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@mikeschaekermann рдЕрдЧрд░ рдореИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ shelve рд╕рдорд╡рд░реНрддреА рд▓реЗрдЦрди рдкрд╣реБрдВрдЪ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рди рд╣реЛрдиреЗ рджреЗрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрджреНрдзреГрдд рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ "рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдпреВрдирд┐рдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред"

@ ze-phyr-us рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдФрд░ рдореИрдВрдиреЗ shelve рдбреЙрдХреНрд╕ рдХреА рдЧрд▓рдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреАред рдлрд┐рд░ рднреА, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдХреНрдпрд╛ Scheduler рдмреИрдХрдПрдВрдб рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдкрд░рдорд╛рдгреБ рд╕рдВрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирдХрд░ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреА? @ask рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП django-celery-beat рдкреИрдХреЗрдЬ рдкрд░рдорд╛рдгреБрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ? рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХ рд╡рд┐рддрд░рд┐рдд / рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЕрдиреБрдХреВрд▓ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реБрдП рдпрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд░реЗрдбрд┐рд╕ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛрддреА рд╣реИ; рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдмреАрдЯрдХреЙрдк рдФрд░ рд╕рд┐рдВрдЧрд▓-рдмреАрдЯ рджреЛрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ рд░реЗрдбрдмреАрдЯ рдХреЛ рдЪреБрдирд╛ред

рдирдорд╕реНрддреЗ @ddevlin
рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рд╕рд┐рдВрдЧрд▓-рдмреАрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирдореВрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдПрдХрд╛рдзрд┐рдХ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд░реЗрдбрдмреАрдЯ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред

@ рдЕрдВрдХреБрд░ 11 рд╕рд┐рдВрдЧрд▓-рдмреАрдЯ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдмреАрдЪ рд╢реЗрдбреНрдпреВрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╢реЗрдбреНрдпреВрд▓ рд╕реНрдерд┐рддрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред django-celery-рдмреАрдЯ рд╕реЗрд▓реЗрд░реА рдбреЙрдХреНрд╕ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╢реЗрдбреНрдпреВрд▓ рд╕рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХреЛ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЗрдбрд┐рд╕ рдХреЛ рдЕрдкрдиреЗ рд╕реЗрд▓реЗрд░реА рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред

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

рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд░реЗрдбрдмреАрдЯ рдХреЗ рд╕рд╛рде рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг exec celery beat --scheduler=redbeat.RedBeatScheduler --app=myproject.celery:app ) рдХреЗ рд╕рд╛рде, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдХрд╛рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

@mikeschaekermann рдЖрдк рдПрдХреНрд╕реЗрд╕ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдХреЛ/рдЙрдкрдпреЛрдЧ/рдмрд┐рди/рдЭреБрдВрдб рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

flock /nfs/lock.file celery beat ...

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдПрдирдПрдлрдПрд╕ рд▓реЙрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ :)

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рд▓реЙрдХрд░ рдХреЗ рдорд░рдиреЗ рддрдХ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

@mikeschaekermann рдЖрдк рдПрдХреНрд╕реЗрд╕ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдХреЛ/рдЙрдкрдпреЛрдЧ/рдмрд┐рди/рдЭреБрдВрдб рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

рдЭреБрдВрдб /nfs/lock.file рдЕрдЬрд╡рд╛рдЗрди рд╣рд░рд╛ ...

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдПрдирдПрдлрдПрд╕ рд▓реЙрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ :)

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рд▓реЙрдХрд░ рдХреЗ рдорд░рдиреЗ рддрдХ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

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

рдореИрдВ Postgres рдореЗрдВ рдПрдХ рд╕рд▓рд╛рд╣рдХрд╛рд░ рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдкреНрдд рд╣реБрдЖред рдореИрдВрдиреЗ рдПрдХ Django рдкреНрд░рдмрдВрдзрди рдХрдорд╛рдВрдб рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ django_pglocks рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИред

рдореИрдВ Postgres рдореЗрдВ рдПрдХ рд╕рд▓рд╛рд╣рдХрд╛рд░ рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдкреНрдд рд╣реБрдЖред рдореИрдВрдиреЗ рдПрдХ Django рдкреНрд░рдмрдВрдзрди рдХрдорд╛рдВрдб рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ django_pglocks рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдиреНрд╣реАрдВ рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ NFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрд╛ рдерд╛ред рдпрджрд┐ рд▓реЙрдХ рд░рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ Postgres рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ Postgres рд╕рд░реНрд╡рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

@ swt2c рдЕрд░реНрдШ, рдмреЗрд╢рдХ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ! рдХрд┐рд╕реА рддрд░рд╣ рдЬрд┐рдВрджрд╛ рд░рд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдЕрднреА рдореИрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

def _pre_exec():
    prctl.set_pdeathsig(signal.SIGTERM)

with advisory_lock(LOCK_ID) as acquired:
            assert acquired
            logging.info("Lock acquired: %s", acquired)
            p = subprocess.Popen(
                celery,
                shell=False,
                close_fds=True,
                preexec_fn=_pre_exec,
            )
            sys.exit(p.wait())

advisor_lock рд░рд┐рдХрд░реНрд╕рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреАрдмреА рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:

In [8]:  with advisory_lock('foo') as acquired:
   ...:     print acquired
   ...:     while True:
   ...:        with advisory_lock('foo') as acquired:
   ...:           print acquired
   ...:        time.sleep(1)
   ...:       

# Yes, it does:

True
True
True
<shutdown the instsance>
InterfaceError: cursor already closed

рддреЛ ... рдореИрдВ рд▓реЙрдХ/рдорддрджрд╛рди рдХреЛ рдЙрдк-рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

рдореИрдВ рдбреАрдмреА рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рдмреАрдЯ рд╕реНрдЯреЛрд░ рднреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдбреАрдмреА рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдкрд░ рдХреНрдпрд╛ рдмреАрдЯ рдХрд░рддрд╛ рд╣реИред

@ddevlin рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣реА рд╡рд╣ рд╕рдорд╛рдзрд╛рди рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдЖрдк рдЗрд╕ рддрд░реНрдХ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ redbeat-1 redbeat-2 рдиреАрдЪреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдорджрдж рд╣реЛрдЧреАред

рдпрд╣ supervisor рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ autorestart=True рдХреЗрд╡рд▓ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ RUNNING рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред

рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:

  1. рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдореЗрдВ рджреЛ program ред celery beat рд╕рд╛рде redbeat.RedBeatScheduler ред
  2. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ, рдПрдХ beat ( beat-1 ) рдХреЛ рддрд╛рд▓рд╛ рд▓рдЧ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЪрд▓рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ ( beat-2 ) рдПрдХ рджреЛ рдмрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ FATAL рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ Seems we're already running? рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде)ред
  3. рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдпрджрд┐ beat-1 рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ beat-2 ред
  4. рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ RUNNING рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрднреА рднреА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдпрд╛рдиреА рдЕрдЧрд░ рдореИрдВ beat-1 рд░реЛрдХ рджреВрдВ рддреЛ рд╡рд╣ рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ред

рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ, рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ рдПрдХ cron рд╣реИ рдХрд┐ рдПрдХ рдХрд░ рд░рдЦрддрд╛ рд╣реИ supervisorctl restart all рд╣рд░ 5 рд╕реЗрдХрдВрдб рдпрд╛ рддреЛ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рддреБрдо рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдкрд░ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рдХрд┐ рдЕрддрд┐рд░реЗрдХред

рд╣рд╛рдп @harisibrahimkv , рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдкрд░ рдЕрдЬрд╡рд╛рдЗрди рдХреА рдзрдбрд╝рдХрди рдХреЗ рджреЛ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ; рдореИрдВ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдЙрдореНрдореАрдж ERROR: Pidfile (celerybeat.pid) already exists. рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓реЙрдЧ рдореЗрдВ beat-2 ? рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдХреЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рдЙрдирдХреЗ рдмреАрдЪ рдлреЗрд▓рдУрд╡рд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрддрд┐рд░реЗрдХ рдХреЗ рд▓рд┐рдП рдЖрдк рд╢рд╛рдпрдж рдХрдИ рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рд╕реЗрд▓реЗрд░реА рдмреАрдЯ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдПрдХ рд╣реА рд╣реЛрд╕реНрдЯ рдкрд░ рдХрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдЙрдиреНрд╣реЗрдВ --pidfile рддрд░реНрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдкрд┐рдбрдлрд╛рдЗрд▓ рджреЗрдВ: рдЬреИрд╕реЗ

# beat-1 
celery beat --scheduler=redbeat.RedBeatScheduler --pidfile="beat-1.pid" ...
# beat-2
celery beat --scheduler=redbeat.RedBeatScheduler --pidfile="beat-2.pid" ...

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

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

@ddevlin рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛ рдЗрддрдиреА рд╢рд╛рдирджрд╛рд░ рдЬрдЧрд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВ! (рдореЗрд░реЗ рдкреВрд░реЗ рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛ рд░рд╣рд╛ рдерд╛: рдбреА)

  1. pidfile рдмрд┐рдЯ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рд░реБрдХрдиреЗ рдкрд░ beat-2 рдХреЛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрдХрд░ рдореИрдВ рдмрд╣реБрдд рдЦреБрд╢ рдерд╛ред рдмреАрдЯ рдХреЗ рд╕рдордп рдХреЛ CELERYBEAT_MAX_LOOP_INTERVAL = 25 (рд╕реЗрд▓реЗрд░реА 3.x рдкрд░) рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

  2. рд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрддрд┐рд░реЗрдХ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдЬрд┐рд╕ рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ, рдЙрд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдм рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред "рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрд╕реНрдЯ" рд╕реЗрдЯрдЕрдк, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдареАрдХ рд╣реА рд╕рдордЭрд╛ рдерд╛, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛ рдХрд┐ рд╡рд┐рдлрд▓рддрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдЗрд╕ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред

рд╣рд╛рд░реНрджрд┐рдХ рдзрдиреНрдпрд╡рд╛рдж,
рднрд╛рд░рддреАрдп рдЙрдкрдорд╣рд╛рджреНрд╡реАрдк рдХреЗ рд╕рдмрд╕реЗ рджрдХреНрд╖рд┐рдгреА рд╕рд┐рд░реЗ рдкрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЧрд╛рдБрд╡ рд╕реЗред :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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