セロリ タスクのチェーンがあり、各タスクをセロリ タスク モデルを継承するクラスとして実装しました。
Celery Task モデルにはdef run()、タスクの実行に必要なメソッドがあります。
def after_returnタスク (run メソッド) が実行されて値が返された後に自動的にトリガーされるメソッドを持つこともできます。
after_returnメソッドのパラメーターの1 つはretval、タスクの戻り値である必要がありrunます。しかし、私はそれを機能させることができないようです。
クラスの例 (基本):
from celery.task import Task
from utils import log as logging
class Test(Task):
name = "test.create"
soft_time_limit = 60
ignore_result = False
def run(self, *args, **kwargs):
return 'test string'
def after_return(self, status, retval, task_id, args, kwargs, einfo):
logging.info("Return value of test task: %s" % retval)
この場合、retvalは と等しくなければなりませんtest string。代わりに、なしです。
簡単なものが欠けているかどうかは誰にも分かりますか?