Celery: рд╕рдореВрд╣ рд╕реЗ рд▓реМрдЯрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╣реИ task_name=рдХреЛрдИ рдирд╣реАрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдлрд╝рд░ре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: celery/celery

рдЬрдм рдореИрдВ рд╕рдореВрд╣ рд╕реЗ рдЖрдП рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдХрд╛рд░реНрдпрдирд╛рдо рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреЛрдИ рдирд╣реАрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдкрд╛рдпрдерди (рдУрдВ): 3.3.6, 3.4.2
рдЕрдЬрд╡рд╛рдЗрди: 3.1.17

рдкрд░рд┐рдпреЛрдЬрдирд╛/рдЕрдЬрд╡рд╛рдЗрди.py

from celery import Celery

app = Celery('proj',
             broker='amqp://',
             backend='amqp://',
             include=['proj.tasks'])

# Optional configuration, see the application user guide.
app.conf.update(
    CELERY_TASK_RESULT_EXPIRES=3600,
)

if __name__ == '__main__':
    app.start()

рдкрд░рд┐рдпреЛрдЬрдирд╛/рдХрд╛рд░реНрдп.py

from proj.celery import app

@app.task
def add(x, y):
    return x + y


@app.task
def mul(x, y):
    return x * y

run_add.py

from celery import group

from proj import tasks

import logging

log = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)

results = group([
    tasks.mul.s(4,4),
    tasks.add.s(3,3)
]).delay()

while results.waiting():
    pass

if results.successful():
    for result in results:
        log.info('ID: {}, name: {}'.format(result.task_id, result.task_name))

рдирддреАрдЬрд╛:

INFO:__main__:ID: c2fa4f30-0691-41ee-8f7b-e7dcbf32d09a, name: None
INFO:__main__:ID: f545bfa0-2ad7-40b3-9d05-561d4c1eba7e, name: None

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

@ask рдХреНрдпрд╛ рдЕрдм task_name рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реЗрдм рдкрд░ рдХрд╛рд░реНрдп рдбреЗрдЯрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИ, рдФрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдХ AsyncResult рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рдХрд╛рд░реНрдп рдХрд╛ рдирд╛рдо рд▓реЙрдЧ рдХрд░реЗрдВред

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

рдРрд╕рд╛ рд╣реА рдХреБрдЫ рдЬрдВрдЬреАрд░реЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╣реЛрддрд╛ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкреЛрд╕реНрдЯ рднреА рд╣реИ:

рд╕реЗрд▓реЗрд░реА рдореЗрдВ рдЪреЗрди рд╕рдмрдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп AsyncResult рд╕реЗ рдЯрд╛рд╕реНрдХ_рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

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

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

@ask рдХреНрдпрд╛ рдЕрдм task_name рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реЗрдм рдкрд░ рдХрд╛рд░реНрдп рдбреЗрдЯрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИ, рдФрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдХ AsyncResult рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рдХрд╛рд░реНрдп рдХрд╛ рдирд╛рдо рд▓реЙрдЧ рдХрд░реЗрдВред

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

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

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

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

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

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

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