【发布时间】:2016-01-24 01:39:37
【问题描述】:
我有一个 celery 任务,它遍历接收者列表以发送消息。如果任何发送调用失败,我不希望 celery 任务退出,而是继续循环中的其他项目。
在我的情况下,task.retry(throw=False) 不会发生这种情况。我确实看到任务在那个时候退出,没有做废话,甚至没有进一步迭代循环。
我不想要和弦或链,它不是并行任务执行。我怎样才能做到这一点?
@celery_app.task()
def send_msg_to_list():
for recvr in Emailrecvr.objects.filter(query=obj):
try:
email_rv = recvr.send(msg)
except SMTPException:
# Dont exit the loop but continue with others
send_msg_to_list.retry(throw=False)
# do some blah here
【问题讨论】:
-
不要重试。只需
pass。
标签: python django django-celery celery-task