Celery: `рджреЗрд░реА` . рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗрд▓реЗрд░реА рдЯрд╛рд╕реНрдХ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдЬрдире░ 2014  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: celery/celery

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

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реНрдп рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрд░реА рдЯрд╛рд╕реНрдХ рдЖрдИрдбреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╕реЗрд▓реЗрд░реА рдЯрд╛рд╕реНрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯрд╛рд╕реНрдХ рдЖрдИрдбреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рдЪрд┐рдХрди-рдЕрдВрдбреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдордЬрдмреВрдд рддрд░реАрдХрд╛ рд╣реИ? рдПрдХ рддрд░рд╣ рд╕реЗ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрдирд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реНрдп рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдмрдирд╛рдпрд╛ ( task_function.delay() рдХреЗ рдХреЙрд▓рд░ рдореЗрдВ), рд▓реЗрдХрд┐рди рдореИрдВ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗрд▓реЗрд░реА рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдпрд╛ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд╛рд░реНрдп рдЖрдИрдбреА рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВред

рдЙрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░, рд╕рдВрдХреЗрдд, рд╕рдВрдХреЗрдд? - рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

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

рдЖрдк рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдлреНрд░реАрдЬ рдХрд░рдХреЗ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:

>>> sig = add.s(2, 2)
>>> sig.freeze()
<AsyncResult: e89ff8f1-a556-4bb7-8b9e-5db9806ca082>
>>> sig.delay()
<AsyncResult: e89ff8f1-a556-4bb7-8b9e-5db9806ca082>

>>> sig = group(add.s(i, i) for i in range(5))
>>> sig.freeze()
<GroupResult: 9b4a8bf0-2f81-43fe-a5a0-23563441b25d [6eb971bc-ad3b-4f8f-9724-5b2baa493369, 2390bada-76f7-4680-8013-e9da78bf6a68, c5c510c1-80ed-49bc-aaaa-7ddbd5d025d2, 9be6363e-7290-407b-8c54-d6baf90d99d6, 35502fc1-9ce9-44df-917b-a6026daed646]>
>>> sig.delay()
<GroupResult: 9b4a8bf0-2f81-43fe-a5a0-23563441b25d [6eb971bc-ad3b-4f8f-9724-5b2baa493369, 2390bada-76f7-4680-8013-e9da78bf6a68, c5c510c1-80ed-49bc-aaaa-7ddbd5d025d2, 9be6363e-7290-407b-8c54-d6baf90d99d6, 35502fc1-9ce9-44df-917b-a6026daed646]>

рдЖрдк рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 >>> from celery import uuid
 >>> task_id = uuid()
 >>> task_id
'c7f388e9-d688-4f1d-be22-fb043b93c725'
 >>> add.apply_async((2, 2), task_id=task_id)
 <AsyncResult: c7f388e9-d688-4f1d-be22-fb043b93c725>

рдЬрдм рдХреЛрдИ рдХрд╛рд░реНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд╣рд▓реЗ_рдХрд╛рд░реНрдп_рдкреНрд░рдХрд╛рд╢рд┐рдд рдпрд╛ . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
after_task_publish рд╕рд┐рдЧреНрдирд▓ ( рд╕рд┐рдЧреНрдирд▓ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рджреЗрдЦреЗрдВ)

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

рдЖрдк рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдлреНрд░реАрдЬ рдХрд░рдХреЗ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:

>>> sig = add.s(2, 2)
>>> sig.freeze()
<AsyncResult: e89ff8f1-a556-4bb7-8b9e-5db9806ca082>
>>> sig.delay()
<AsyncResult: e89ff8f1-a556-4bb7-8b9e-5db9806ca082>

>>> sig = group(add.s(i, i) for i in range(5))
>>> sig.freeze()
<GroupResult: 9b4a8bf0-2f81-43fe-a5a0-23563441b25d [6eb971bc-ad3b-4f8f-9724-5b2baa493369, 2390bada-76f7-4680-8013-e9da78bf6a68, c5c510c1-80ed-49bc-aaaa-7ddbd5d025d2, 9be6363e-7290-407b-8c54-d6baf90d99d6, 35502fc1-9ce9-44df-917b-a6026daed646]>
>>> sig.delay()
<GroupResult: 9b4a8bf0-2f81-43fe-a5a0-23563441b25d [6eb971bc-ad3b-4f8f-9724-5b2baa493369, 2390bada-76f7-4680-8013-e9da78bf6a68, c5c510c1-80ed-49bc-aaaa-7ddbd5d025d2, 9be6363e-7290-407b-8c54-d6baf90d99d6, 35502fc1-9ce9-44df-917b-a6026daed646]>

рдЖрдк рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 >>> from celery import uuid
 >>> task_id = uuid()
 >>> task_id
'c7f388e9-d688-4f1d-be22-fb043b93c725'
 >>> add.apply_async((2, 2), task_id=task_id)
 <AsyncResult: c7f388e9-d688-4f1d-be22-fb043b93c725>

рдЬрдм рдХреЛрдИ рдХрд╛рд░реНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд╣рд▓реЗ_рдХрд╛рд░реНрдп_рдкреНрд░рдХрд╛рд╢рд┐рдд рдпрд╛ . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
after_task_publish рд╕рд┐рдЧреНрдирд▓ ( рд╕рд┐рдЧреНрдирд▓ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рджреЗрдЦреЗрдВ)

рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЧрдпрд╛ task_id = uuid() ред рдпрд╣ рдПрдХ рд╕рдореНрдореЛрд╣рди рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

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

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

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

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

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

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

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

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