我正在使用带有redis和python 3的芹菜4.1.0来执行任务。
我正在运行这样的任务链:
def identifier():
res = chain(
authenticate.s(token),
get_identifier.s(id_type, amount)
).apply_async()
return jsonify({'task_id': res.id}), 202, {'Location': url_for('task_status', task_id=res.id)}
在我的get_identifier
函数中,如果某些条件未满足,我会有以下其他声明:
@celery.task(bind=True)
def get_identifier(self, authentication, id_type, amount):
if:
# some stuff
else:
self.update_state(state=states.FAILURE, meta="result is None")
return {'StatusCode': '403',
'error_message': authentication['error_message'],
'id_type': id_type,
'identifier': items_list
}
在另一个函数中,我正在检查这样的任务状态:
def task_status(task_id):
task = get_identifier.AsyncResult(task_id)
print(task.state)
任务状态始终为SUCCESS
,但在代码输入FAILURE
语句的情况下,我预计它为else
。
也许有人知道我在这里做错了什么。