Celery: Hasil yang dikembalikan dari grup memiliki task_name=None

Dibuat pada 13 Feb 2015  ·  3Komentar  ·  Sumber: celery/celery

Ketika saya mencoba mengakses nama tugas dari hasil yang berasal dari grup, Tidak ada yang dikembalikan

Python(s): 3.3.6, 3.4.2
seledri: 3.1.17

proj/seledri.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()

proj/tasks.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))

Hasil:

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

Komentar yang paling membantu

@ask apakah tidak ada cara untuk mengambil task_name sekarang? Kami memiliki titik akhir yang digunakan untuk mengekspos data tugas ke web, dan kami ingin, dengan AsyncResult, mencatat nama tugas.

Semua 3 komentar

Hal yang sama tampaknya juga terjadi dengan rantai juga.
Ada juga posting stackoverflow tentang itu:

Dapatkan task_name dari AsyncResult saat mengirimkan rantai di seledri

task_name adalah bidang lokal, itu tidak digunakan untuk apa pun lagi dan saya kira itu harus dihapus sepenuhnya.

Hasil yang dikirim sebenarnya tidak memiliki bidang nama, itu digunakan di beberapa titik untuk membuat serial backend dengan hasil saat menggunakan acar, tetapi sekarang dilakukan secara berbeda.

@ask apakah tidak ada cara untuk mengambil task_name sekarang? Kami memiliki titik akhir yang digunakan untuk mengekspos data tugas ke web, dan kami ingin, dengan AsyncResult, mencatat nama tugas.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat