Celery: ๊ทธ๋ฃน์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ์—๋Š” task_name=None์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2015๋…„ 02์›” 13์ผ  ยท  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 ๋Œ“๊ธ€

๊ฐ™์€ ์ผ์ด ์ฒด์ธ์—์„œ๋„ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์— ๋Œ€ํ•œ stackoverflow ๊ฒŒ์‹œ๋ฌผ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์…€๋Ÿฌ๋ฆฌ์—์„œ ์ฒด์ธ์„ ์ œ์ถœํ•  ๋•Œ AsyncResult์—์„œ task_name ๊ฐ€์ ธ์˜ค๊ธฐ

task_name์€ ๋กœ์ปฌ ํ•„๋“œ์ด๋ฉฐ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์™„์ „ํžˆ ์ œ๊ฑฐ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ „์†ก๋œ ๊ฒฐ๊ณผ์—๋Š” ์‹ค์ œ๋กœ ์ด๋ฆ„ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉฐ, ํ”ผํด์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐฑ์—”๋“œ๋ฅผ ๊ฒฐ๊ณผ๋กœ ์ง๋ ฌํ™”ํ•˜๋Š” ๋ฐ ์–ด๋Š ์‹œ์ ์— ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ๋‹ค๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

@ask ์ง€๊ธˆ task_name์„ ๊ฐ€์ ธ์˜ฌ ๋ฐฉ๋ฒ•์ด ์—†๋‚˜์š”? ์›น์— ์ž‘์—… ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋์ ์ด ์žˆ์œผ๋ฉฐ AsyncResult๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ž‘์—… ์ด๋ฆ„์„ ๊ธฐ๋กํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰