我最近开始研究分布式计算以提高计算速度,选择了Celery。然而,我对一些术语并不是很熟悉,因此有几个相关的问题。
根据Celery文档:
什么是任务队列?
...
Celery 通过消息进行通信,通常使用代理在客户端和工作者之间进行中介。要启动一个任务,客户端将消息添加到队列中,代理然后将该消息传递给工作者。
这里的客户端是什么?代理是什么?为什么要通过代理传递消息?为什么Celery会使用后端和队列进行进程间通信?
当我执行命令启动Celery控制台时:
celery worker -A tasks --loglevel=info --concurrency 5
这是否意味着Celery控制台是一个工作进程,负责5个不同的进程并跟踪任务队列?当新任务被推送到任务队列时,这个工作者会将任务/作业分配给其中任何一个进程吗?