14

公式ドキュメントに記載されているように、セロリグループを使用して一連のセロリタスクを開始しています

タスクセットの状態についてセロリをポーリングするために、グループ(タスクセット)IDもデータベースに保存しています。

job = group([
        single_test.s(1, 1),
        single_test.s(1, 2),
        single_test.s(1, 3),
    ])

result = job.apply_async()

test_set = MyTestSet()
test_set.taskset_id = result.id

# store test_set into DB

タスクセット ID から開始して GroupResult オブジェクト (つまり my result) を取得する方法はありますか? この質問で行われていることと似ていますが、セロリ グループを使用しています。

私はすでにやってみました:

r = GroupResult(taskset_id)

r.results()しかし、常に空であるため、機能しません。

GroupResult.save()GroupResult.restore() メソッドを使用する必要がありますか?

4

1 に答える 1

23

はい、結果を保存してから復元する必要があります。

job = group([
    single_test.s(1, 1),
    single_test.s(1, 2),
    single_test.s(1, 3),
])
result = job.apply_async()
result.save()

from celery.result import GroupResult
saved_result = GroupResult.restore(result.id)

私は同じ問題を抱えていましたが、保存/復元に関するヒントを見た後、最終的にそれを理解しました.

于 2013-01-06T19:57:07.467 に答える