Python 在django芹菜中运行单个任务最多n次

Python 在django芹菜中运行单个任务最多n次,python,django,celery,Python,Django,Celery,假设我有一个名为lazy\u post\u任务的任务 编写这样的代码 @app.task(bind=True) def lazy_post_task(self, post_url): self.update_state(state='PROGRESS', meta={}) ............. 现在我想运行这个任务多达n次,n取决于用户输入,我还想等到上一个任务完成。 我的意思是,假设用户输入=2,那么我想运行任务最多2次,但每次运行一次。您可以引发异常以重试任务。要获取

假设我有一个名为lazy\u post\u任务的任务

编写这样的代码

@app.task(bind=True)
def lazy_post_task(self, post_url):
    self.update_state(state='PROGRESS', meta={})
    .............
现在我想运行这个任务多达n次,n取决于用户输入,我还想等到上一个任务完成。 我的意思是,假设用户输入=2,那么我想运行任务最多2次,但每次运行一次。

您可以引发异常以重试任务。要获取重试次数,请使用:

@app.task(bind=True)
def lazy_post_任务(自我、post_url、最大重试次数):
self.update_state(state='PROGRESS',meta={})
如果最大重试次数

请注意,您还需要将用户的
max_retries
作为参数传递。

您可以向任务传递一个值,然后让任务调用一个函数,同时保持count,以便只调用它
x
次。否则,请查看芹菜节拍以获得适当的任务调度。
@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()