Celery + Redis后端:如何限制队列大小?

w3nuxt5m  于 2022-10-31  发布在  Redis
关注(0)|答案(3)|浏览(244)

当我使用Redis后端运行Celery时,是否有办法限制队列大小?
rabbitmq的队列预声明中类似于x-max-length的内容

gmol1639

gmol16391#

据我所知,这是不可能的与Redis作为后端。

ckocjqey

ckocjqey2#

我想你正在寻找celery 的预取限制。看看它的文档。

xqk2d5yq

xqk2d5yq3#

这可能有点笨拙,但是你可以尝试在调用任务时使用Redis锁。这样,如果另一个进程想要调用任务,它就必须等待Redis锁被释放(这会发生在任务运行完成或超时时)。这将防止太多的任务被添加到队列中

with r.lock(some_lock_name, blocking_timeout=10):
    your_celery_task.delay()

相关问题