【发布时间】:2020-05-05 01:38:09
【问题描述】:
我目前在 celery(与 RabbitMQ)中使用Task.delay() 来执行异步任务。任务分配给 8 个工作人员,在这些任务中,我正在执行数据库插入操作。
有时一个任务会失败,并且数据库插入不会发生。这可能是由于超时或 JSON 解码错误造成的。我想捕获执行失败。
以下是相关代码:
views.py
def celery_url_filtering(request):
for each_data in dataset:
#each_data is a Json object
res = result.delay(each_data)
while(res.status == 'PENDING'):
pass
return JsonResponse({'ok':'Success'})
tasks.py
@app.task
def result(dataeach_data):
# Parse each_data and do data insertion here
return "Something"
如何在列表中捕获失败的执行?
【问题讨论】:
-
为什么不在任务中处理这些错误?
-
@DejanLekic,错误是随机的,所以无法追查根本原因
标签: python-3.x asynchronous rabbitmq celery django-celery