def make_task(self):
"""Create an celery task responsible of running reporter covers
asynchronously.
:returns: An celery task.
:rtype: :class:`~celery.Task`
"""
class CallbackTask(Task):
def on_success(task, retval, task_id, args, kwargs):
schedule = self.backend.get_schedule(args[0])
self.on_cover_success(schedule, retval)
def on_failure(task, exc, task_id, args, kwargs, einfo):
schedule = self.backend.get_schedule(args[0])
self.on_cover_failure(schedule, exc)
# make `run_cover` method into a celery task
run_cover = self._make_run_cover()
return self.celery.task(bind=True, base=CallbackTask)(run_cover)
评论列表
文章目录