celery使用的时候,由于任务时间过长,任务会重复执行


原因:

   由于celery任务有心跳机制,当任务时间过长(约超过5min),所以认定为链接不畅,重启celery。同时因为没有接收到ack信息,那么当celery重启之后没有接收到的任务在重传机制下,会重复执行。

解决方法:

    1.禁止心跳(不推荐)
    2.在task任务过程中主动发送心跳