我有一些应该返回结果的任务,而某些任务则没有。我想强制任务不应该返回结果,不要在结果后端写任何东西(例如无)。我该如何在芹菜中实现?
例如,这是我的任务:
@app.task
def taskWithResult():
# ...code...
return res
@app.task
def taskWithNoResult():
# ...code without return...
,我还有一些其他任务的特殊队列,这些任务也不返回任何结果,我可以用不得在结果后端写入的任务标记该队列吗?
从芹菜文档中您可以将忽略结果标志设置为true。http://docs.celeryproject.org/en/latest/reference/celery.app.task.html?highlight=default_retry_retry_delry_delay#celery.app.task.task.task.task.ignore_ignore_result
例如:
@app.task(ignore_result=True)
def taskWithNoResult():
# ...code without return..
全局config
app.conf.task_ignore_result = True
本地关闭的返回任务结果:
@app.task(ignore_result=True)
def add(...):
如果您只想返回并持续存在任务执行失败的异常结果,以进行后续调查和分析,则可以在使用数据库后的后端应用以下配置:
仅存储结果后端中的任务错误。
app.conf.task_ignore_result = True
app.conf.task_store_errors_even_if_ignored = True