1

を使用したメソッドでCeleryあるドキュメントの例を使用しようとすると、最終結果が得られません。addsubtask

@task
def add(x, y, callback=None):
    result = x + y
    if callback:
        subtask(callback).delay(result)
    return result

でタスクを呼び出すと;

>>> subadd = add.subtask(args=(5, ))
>>> r=add.apply_async(args=(1, 2,subadd))
>>> r.result
3

3ご覧のとおり、代わりに を返します8

これらの部分を実行すると、ワーカーにエラーが発生します。なぜそれが起こっているのかわかりません。

[2013-06-27 07:49:18,080: ERROR/MainProcess] Received unregistered task of type 'devicemanagement.celery_task.add'.

結果から8を取得するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

2

以下ではないはずです。

r = add.apply_async((1, 2), link=add.s(5))
r.result

Celery - リンク (コールバック/エラーバック)

于 2013-07-03T13:28:33.673 に答える