タスクが最大再試行回数(on_failure
)に達したときに何が起きるかをオーバーライドするために、カスタムCeleryタスククラスを作成しています。タスクが失敗した場合、ユーザーモデルのステータスを更新する必要があります。以下はCeleryタスクのon_failureメソッドにパラメータを渡す
は私のカスタムタスククラスです:
class ReadyTask(Task):
def run(self, user):
try:
user.get_results()
except Exception as exc:
raise self.retry(exc=exc, max_retries=3)
def on_failure(self, exc, task_id, *args, **kwargs):
user.status = Status.READY
user.save()
はどうやってそのステータスを更新するために、on_failure()
方法にUserオブジェクトを渡すことができますか?