我已经定义了这样的芹菜任务:
@app.task()
def my_task():
# Do things...
我正在使用花,所以我想根据我创建的一些规则来查看任务的最终状态:
if condition_1:
return task_status_success
elif condition_2:
return task_status_fail
我该怎么做?
我已经看到有人做这样的事情:
class AbstractTask(Task):
abstract = True
def __init__(self):
self.last_error_log = ErrorLog(logger)
Task.__init__(self)
def _task_error(self, message):
logger.error(message)
self.update_state(state=states.FAILURE)
raise Exception(message)
但是该方法似乎将类定义为任务,而不是函数。
如何手动设置定义为函数的芹菜任务的状态?
要使用您看到的使用抽象类的方法,您只需要将类作为base
传递给装饰器:
@app.task(base=AbstractClass, bind=True)
def my_task(self):
pass
bind=True
将允许您使用self
访问类的成员。