gpt4 book ai didi

rabbitmq - Celery 任务计划(Celery、Django 和 RabbitMQ)

转载 作者:行者123 更新时间:2023-12-02 10:35:46 24 4
gpt4 key购买 nike

我想要一个每 5 分钟执行一次的任务,但它会等待最后一次执行完成,然后开始计算这 5 分钟。 (这样我也可以确定只有一个任务正在运行)我发现的最简单的方法是运行 django application manage.py shell 并运行:

while True:
result = task.delay()
result.wait()
sleep(5)

但是对于我想以这种方式执行的每个任务,我必须运行它自己的 shell,有没有一种简单的方法可以做到这一点?可能是一些国王定制的 ot django celery 调度程序?

最佳答案

哇,令人惊讶的是没有人理解这个人的问题。他们问的不是定期运行任务,而是如何确保 Celery 不会同时运行同一任务的两个实例。我认为没有办法直接用 Celery 来做到这一点,但你可以做的是让其中一个任务在开始时获取锁,如果失败,则在几秒钟内重试(使用重试) 。任务将在返回之前释放锁;如果锁崩溃或超时,您可以使锁在几分钟后自动过期。

对于锁,您可能可以使用数据库或 Redis 之类的东西。

关于rabbitmq - Celery 任务计划(Celery、Django 和 RabbitMQ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5361521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com