Celery是一个异步任务的调度工具。它是Python写的库,
,往往从主应用中隔离,。简而言之,做一个注册的功能,在用户使用邮箱注册成功之后,需要给该邮箱发送一封激活邮件。如果直接放在应用中,则调用发邮件的过程会遇到网络IO的阻塞,比好优雅的方式则是使用异步任务,应用在业务逻辑中触发一个异步任务。
当程序执行到某个的任务时,在显示前端页面时,不可能让页面卡在那里或长时间转圈圈,为了提高用户体验,对于一些耗时耗资源的操作,通过异步的方式执行.
celery是Python中任务队列的事实标准。其特点在于:
启动后,本身是一个任务分发进程,会启动若干个worker进程完成任务
需要依赖一个消息队列来负责任务从客户端到Celery进程的派发。这样的好处是,客户端代码只需要向MQ中派发任务请求以及参数,Celery进程就可以从MQ中读取消息并派发给worker,从而达到了客户端程序与Celery进程解耦的效果。而且Celery进程并不需要监听任何端口,减少了配置的复杂性。常用的消息队列实现可以使用RabbitMQ,Redis等等。
Celery是Python中任务队列的事实标准。其特点在于:
启动后,本身是一个任务分发进程,会启动若干个worker进程完成任务需要依赖一个消息队列来负责任务从客户端到Celery进程的派发。这样的好处是,客户端代码只需要向MQ中派发任务请求以及参数,Celery进程就可以从MQ中读取消息并派发给worker,从而达到了客户端程序与Celery进程解耦的效果。而且Celery进程并不需要监听任何端口,减少了配置的复杂性。常用的消息队列实现可以使用RabbitMQ,Redis等等。
任务发出者、中间人和任务执行者可以在不同的电脑上;
发出的任务会进行排队,先添加到队列中的先执行;
任务发出者发出任务消息时,只是发出所要执行的任务的名字和参数,故worker任务执行者这一段需要有一份完整的代码;
1.创建celery_tasks用于保存celery异步任务
2.在celery_tasks目录下创建config.py文件,用于保存celery的配置信息
broker_url = "redis://127.0.0.1/14"
3.在celery_tasks目录下创建main.py文件,用于作为celery的启动文件