假设我有名为lazy_post_task的任务。
编写这样的代码
@app.task(bind=True)
def lazy_post_task(self, post_url):
self.update_state(state='PROGRESS', meta={})
.............
现在我想运行此任务多达 n 次,n 取决于用户输入,我也想等到上一个任务完成。 我的意思是,假设用户输入= 2,那么我想最多运行任务2次,但一次运行一次。
您可以引发self.retry()
异常以重试任务。要获取重试次数,请使用self.request.retries
:
@app.task(bind=True)
def lazy_post_task(self, post_url, max_retries):
self.update_state(state='PROGRESS', meta={})
if max_retries < self.request.retries:
raise self.retry()
请注意,您还需要将用户的max_retries
作为参数传递。