2016-01-24 54 views
0

我有一个芹菜任务,循环接收者列表发送消息。如果任何发送调用失败,我不希望芹菜任务退出,而是继续循环中的其他项目。Django芹菜任务错误/异常后继续

在我的情况下,这不会发生在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 
+1

不要重试。只需“通过”。 –

回答

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