我正在使用堆栈进行一些测试:Django,RabbitMQ,Celery和Flower。
一切都很顺利,但我们遇到了任务失败的问题,我知道他们无法从Flower网络界面重新启动(我是对的?),所以我开始了芹菜... < / p>
我的观点是,我有一个转储代码可以完成这项工作:
@app.task(max_retries=2, default_retry_delay = 1 * 1)
def debug_task():
try:
random_int = int(randint(0, 15))
if random_int > 5:
raise Exception ('> 5')
else:
print('Request: {0!r}'.format('OK'))
except MaxRetriesExceededError:
print('New queue')
debug_task.apply_async(queue='failed_tasks')
except Exception as exc:
raise debug_task.retry(exc=exc)
它似乎有效,因为我在鲜花中看到的数字是&gt; 5,整个过程将再次执行,如屏幕截图所示:
所以,现在我有一堆失败的任务,我需要“某些东西”来重新启动它们,执行并将结果交还给花,我做错了什么?