セロリ タスクのチェーンがあり、各タスクをセロリ タスク モデルを継承するクラスとして実装しました。
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
。代わりに、なしです。
簡単なものが欠けているかどうかは誰にも分かりますか?