celery是分布式任务队列,可以让任务脱离主程序,例如碰到耗时操,为避免阻塞主程序运行,可以采用多线程或者异步任务
celery包含三个部分:消息中间件(broker),任务执行单元(worker),任务执行结果存储(task result store)
中间件:
celery的Broker可以使用RabbitMQ和 redis ,接收任务生产者发来的任务,将任务存到队列中
执行单元(worker):
worker并发的运行在分布式的系统节点中,实时监控消息队列,获取任务,并执行
任务结果的存储:
用来存储worker执行的结果,支持用不同的方式存储任务结果。包括redis,mongodb,等
celery的常见场景:
执行的过程:
任务生产者生产任务,应用程序独调用delay()方法任务进入消息队列中间件中,worker监控到任务进行执行
队列的存储中间件主要是RabbitMQ,redis,接收生产者发送的任务。
celery常用功能:
1.定时
2.异步
定时:https://www.cnblogs.com/linxiyue/archive/2017/12/21/8082102.html
http://blog.51cto.com/10085711/2069294
https://www.jb51.net/article/111528.htm
异步:https://blog.csdn.net/apple9005/article/details/54430104