以 Redis 作为队列的 Celery - 我无法找到一种方法来找出预取的任务

Celery with redis as a queue - I cant find a way to find out what tasks are prefetched

有什么方法可以检索在 celery 中使用 Redis 作为队列预取的任务的信息吗?

这个预取任务就像幽灵一样。它们没有被处理,也没有在队列中等待,所以我对于 redis 它们是不可见的。

使用 rabbitMQ+celery 我可以看到所有任务(结合两者的 API)。但是对于redis,我看不到任何东西(实际上我只能计算队列中的任务->这是错误的,因为队列中的任务等于预取+排队)。芹菜的检查也没有帮助。

是否有一些简单的解决方案,redis 在 python 中是否有一些不错的 API 可以让我看到我的任务在哪里?

提前致谢

是的。 inspect API 使您能够检查 reserved 任务。它包含在 Celery 文档的 Commands section 中。像 celery -A yourproj.app inspect registered 这样的东西应该给你每个工人的预取任务。如果您在输出中看不到任何内容,则表示该特定时刻没有保留任务。