Ser*_*hko 4 celery django-celery
我有一些应该返回结果的任务,而有些任务则没有.我想强制不应返回结果的任务不在结果后端写入任何内容(例如None).我怎样才能在芹菜中实现这一目标?
例如,这是我的任务:
@app.task
def taskWithResult():
# ...code...
return res
@app.task
def taskWithNoResult():
# ...code without return...
Run Code Online (Sandbox Code Playgroud)
而且我也有一些特殊队列用于其他一些也没有返回任何结果的任务,我可以将该队列标记为必须不在结果后端写入的任务吗?
小智 9
从celery文档中,您可以将ignore result标志设置为True. http://docs.celeryproject.org/en/latest/reference/celery.app.task.html?highlight=default_retry_delay#celery.app.task.Task.ignore_result
例如:
@app.task(ignore_result=True)
def taskWithNoResult():
# ...code without return..
Run Code Online (Sandbox Code Playgroud)
app.conf.task_ignore_result = True
Run Code Online (Sandbox Code Playgroud)
@app.task(ignore_result=True)
def add(...):
Run Code Online (Sandbox Code Playgroud)
如果您只想将任务执行失败的异常结果返回并持久化以供后续排查分析,那么可以在使用数据库作为结果后端时应用以下配置:
app.conf.task_ignore_result = True
app.conf.task_store_errors_even_if_ignored = True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3685 次 |
| 最近记录: |