Celery的架构
- Celery包含如下组件:
- Celery Beat:任务调度器,Beat进程会读取配置文件的内容,周期性地将配置中到期需要执行的任务发送给任务队列(一般用于定时任务使用)。
- Celery Worker:执行任务的消费者,通常会在多台服务器运行多个消费者来提高执行效率。
- Broker:消息代理,或者叫作消息中间件,接受任务生产者发送过来的任务消息,存进队列再按序分发给任务消费方(本方案使用redis)。
- Producer:调用了Celery提供的API、函数或者装饰器而产生任务并交给任务队列处理的都是任务生产者。
- Result Backend:任务处理完后保存状态信息和结果,以供查询。(本方案使用redis来存储结果)
Celery的架构图如图所示。
根据celery架构图将分布式设计方案如下。
- 任务发布者:产品在后台添加股票完成之后,点击回测,然后分发任务都不同的机器。
- 任务调度:按照设定的时间调用delay方法。
- 消息代理:使用redis来存储股票代码。每次执行的股票代码都是从redis读取。
- 任务消费者:在不同的机器上开启wo