在 django celery 中运行单个任务多达 n 次



假设我有名为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作为参数传递。

相关内容

  • 没有找到相关文章

最新更新