问题描述
我有一个相当简单的问题 - 我的印象是 Celery(使用 Redis)默认将每个任务推送到名为“celery”的 Redis 列表中。
我希望能够看到这个 Redis 列表以便在其他应用程序中使用它(以查看任务长度),但是当我查看我的 Redis 队列以查看“芹菜”Redis 列表的长度时(假设我的任务在那个队列中启动),它不在那里。
注意:在端口 3780 上使用 Docker 和 Redis Image 5.0(将其与我的 Django 应用程序的其余部分隔离)
根据这个:https://stackoverflow.com/a/43420719/10112899 我应该能够查询我指定的 celery 队列的长度(默认 = celery),但它不存在!
这是 Redis CLI 给我的:
问题:用于 Django 和 Python 的 Celery 是否根本不使用 Redis 列表?
解决方法
Celery 确实使用了 Redis LIST/ZSET,但有一些事情需要记住。如果任何集合为空,那么 Redis 会删除该键,因此如果您推送几个条目,那么您应该能够识别队列。