Celery 队列和 Redis 队列

Posted

技术标签:

【中文标题】Celery 队列和 Redis 队列【英文标题】:Celery queues and Redis queues 【发布时间】:2020-06-08 12:57:39 【问题描述】:

我正在查看一些为 Django 设置 Redis(消息代理)+ Celery 的教程,但我对队列的工作方式有点困惑。我遵循的教程是https://hackernoon.com/asynchronous-tasks-with-celery-redis-in-django-3e00d3735686

    redis 有内置队列作为消息代理吗?或者队列是芹菜的一部分? 任务被推送到哪个队列? redis 队列还是 celery 队列?

In this diagram it looks like redis and celery have their own queues

【问题讨论】:

【参考方案1】:

Celery 没有自己的队列(至少在那个架构中没有)。 Redis 会持有队列中的所有任务,然后一个 celery 工作节点会从 Redis 队列中消费任务。

【讨论】:

拱门。从教程或图表? 两者。它们都描述了相同的过程。 Celery 不应该是有状态的,它只是做一些事情然后转移到下一个任务。 如果有帮助,这是一个最低限度的工作示例:github.com/stuart23/django-kubernetes-demo/tree/celery

以上是关于Celery 队列和 Redis 队列的主要内容,如果未能解决你的问题,请参考以下文章

Django - 如何在 celery 和 redis 中使用异步任务队列

定时任务、Celery、消息队列

python 关于celery的异步任务队列的基本使用(celery+redis)采用配置文件设置

停止 Redis 后如何继续执行 celery 队列,然后再启动它?

celery使用多队列

基于celery及redis封装sanic的api