Celery 结构图
如果没有celery,让你自己设计一个异步任务队列你怎么做。
首先,要有一个发起任务的client,选定一定保存任务信息的媒介,由一个worker去一直监听这个信息媒介,这个worker最好是多进程的,另外可以兼容尽可能多得信息媒介。好吧,这个不就是celery所做的事儿么,celery兼容多个broker,既是任务发起者又是执行者,另外支持多进程…还有好多通用功能考虑。
celery+rabbitmq的简单结构图:
celery+rabbitmq的整个工作流程图
Celery 分布式的几种可能情况部署
例如,producer、broker、consumer之间的网络拓扑关系,如下图所示