gpt4 book ai didi

python - 带有 eta 的 Celery 任务从 RabbitMQ 中删除

转载 作者:太空狗 更新时间:2023-10-29 20:31:20 25 4
gpt4 key购买 nike

我正在使用 Django 1.6RabbitMQ 3.5.6celery 3.1.19

有一个周期性任务每 30 秒运行一次,并使用给定的 eta 参数创建 200 个任务。在我运行 celery worker 之后,队列在 RabbitMQ 中慢慢创建,我看到大约 1200 个计划任务等待被触发。然后,我重新启动 celery worker,所有等待的 1200 个计划任务都从 RabbitMQ 中删除

我如何创建任务:my_task.apply_async((arg1, arg2), eta=my_object.time_in_future)

我这样运行 worker:python manage.py celery worker -Q my_tasks_1 -A my_app -l

CELERY_ACKS_LATE 在 Django 设置中设置为 True。我找不到任何可能的原因。

我应该使用不同的配置/标志/参数来运行 worker 吗?有什么想法吗?

最佳答案

据我所知,Celery 不依赖于 RabbitMQ 的调度队列。它在内部实现了 ETA/Countdown。
看起来你有足够的工作人员能够获取足够的消息并在内部安排它们。
请注意,您不需要 200 名 worker 。您已将预取乘数设置为默认值,因此您需要的更少。

关于python - 带有 eta 的 Celery 任务从 RabbitMQ 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34495318/

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