由于celery是一个作业队列/任务队列,name表明它可以维护其任务并处理它们 . 那么为什么它需要像rabbitmq或redis这样的消息代理呢?
Celery是 Distributed Task Queue ,这意味着系统可以跨多个位置驻留在多台计算机上
基本架构如下:
workers - 可以从总线(任务队列)获取作业并处理数据的进程,它可以将结果放入总线,以便由不同的工作人员进一步处理
bus - 任务队列这是一个简单的数据库,它将作业存储为消息,因此工作人员可以检索它们,阻止其他工作人员获取/放置他们的工作, redis 和 activemq 是此类行为的最佳候选者
redis
activemq
bas作为api所以你可以将工作提交到 Bus 车上供 Worker 工作 Celery 包括 scheduler ( beat ),它定期将特定工作放在 Bus 车上,从而定期创建任务
Celery
scheduler
让我们想要废弃这个世界,但中国只能允许来自该地区的流量,欧洲和美国也是如此,因此您可以在亚马逊的计算中心 Build 一个 Worker 并将它们放在世界各地
所以你只能使用一辆公共汽车,让我们说它位于美国,所有其他 Worker 都知道这辆公共汽车并可以连接到它,所以通过在美国的 Bus 车上放置一个特定的工作(废旧瓷器),这个过程在中国可以工作,因此分发
我建议阅读正式的docs,这很简单
1 回答
Celery是 Distributed Task Queue ,这意味着系统可以跨多个位置驻留在多台计算机上
基本架构如下:
workers - 可以从总线(任务队列)获取作业并处理数据的进程,它可以将结果放入总线,以便由不同的工作人员进一步处理
bus - 任务队列这是一个简单的数据库,它将作业存储为消息,因此工作人员可以检索它们,阻止其他工作人员获取/放置他们的工作,
redis
和activemq
是此类行为的最佳候选者bas作为api所以你可以将工作提交到 Bus 车上供 Worker 工作
Celery
包括scheduler
( beat ),它定期将特定工作放在 Bus 车上,从而定期创建任务让我们想要废弃这个世界,但中国只能允许来自该地区的流量,欧洲和美国也是如此,因此您可以在亚马逊的计算中心 Build 一个 Worker 并将它们放在世界各地
所以你只能使用一辆公共汽车,让我们说它位于美国,所有其他 Worker 都知道这辆公共汽车并可以连接到它,所以通过在美国的 Bus 车上放置一个特定的工作(废旧瓷器),这个过程在中国可以工作,因此分发
我建议阅读正式的docs,这很简单