【问题标题】:Django Celery task to continue after error/exceptionDjango Celery 任务在错误/异常后继续
【发布时间】: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


【解决方案1】:
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 
            pass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2015-09-11
    • 2015-01-17
    • 2021-06-20
    相关资源
    最近更新 更多