2

セロリ タスクのチェーンがあり、各タスクをセロリ タスク モデルを継承するクラスとして実装しました。

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。代わりに、なしです。

簡単なものが欠けているかどうかは誰にも分かりますか?

4

0 に答える 0