关于celery的retry
关于的retry的使用方法等详细信息,参考:http://www.voidcn.com/blog/happyAnger6/article/p-6015436.html
此处主要记录自己在实践的一些弯路。
1.self.requests.reties的属性值的含义和变化
1. 当开始执行任务的时候,self.requests.reties被设置为0,说明任务开始执行。
2. 当内部调用self.retry()来进行重试时,同一个request会被同一个worker再次执行。这时,self.request.reties变为1.
总结来说,task开始执行时,self.request.reties的下标为0,第n尝试时,self.request.reties的下标为n。
注意: 虽然self.request.reties的下标从0开始,但是他的最大可达到的值是最大尝试次数,而非最大尝试次数-1。
2. self.retry()相当于一个return,它之后的代码都不会被执行到。
注意:try: except: finally:的finally比较特殊,不管try和except模块里面发生了什么(即便是except里面抛出错误或者return值),finally都会执行。

浙公网安备 33010602011771号