celery是什么,有什么用?
对于celery,各种文档解释一堆,可以自己看下,根据日常互动,公众号用户小白居多,官方用到的很多名词可能你理解起来不是那么容易,我这里就不照本宣科了,就以我这边的理解简单以下方图示解释下,如果有误,欢迎指正:
首先理解一个概念: 阻塞
理解阻塞,先从耗时操作讲起,常见的场景比如用户输入、等待(sleep)这些都属于,具体到实际项目中比如说发邮件、发短信、机器/深度学习训练模型、自动化测试中的各种操作流程等待都会产生耗时,耗时操作通常我们也会称之为阻塞,意思就是程序一行一行代码执行,你这些耗时操作没执行完毕,后面的代码就不会执行,阻塞了后面的代码执行
理解了阻塞以后,就很容易引出一个问题?我如果想提高程序执行效率不让程序阻塞,那该怎么办?有没有一种方式,能在程序阻塞的时候,不影响我后面代码的执行?
一般来说,我们可以用线程、进程、协程,都是可以实现的,只不过在实际项目中,有成熟开源并且广泛应用的的东西,我们会用框架,而不去手写多线程、进程、协程,也不是说这些不用去学,这是编程的基本知识,也是必须掌握的,很能体现编程基本功底
celery基本原理:
1、客户端也就是python(django/flask等)发布任务
2、发布的任务存到任务队列里面,可以以redis、rabbitMQ、MessageQueue、MySQL存储,一般在django/flask程序里re