提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
最近项目需要执行定时任务和异步任务,通过调研选择使用celery
一、celery是什么?
Celery是一个基于python开发的分布式任务队列,如果不了解请阅读笔者上一篇博文Celery入门与进阶,而做python WEB开发最为流行的框架莫属Django,但是Django的请求处理过程都是同步的无法实现异步任务,若要实现异步任务处理需要通过其他方式(前端的一般解决方案是ajax操作),而后台Celery就是不错的选择。倘若一个用户在执行某些操作需要等待很久才返回,这大大降低了网站的吞吐量。下面将描述Django的请求处理大致流程(图片来源于网络):
请求过程简单说明:浏览器发起请求–>请求处理–>请求经过中间件–>路由映射–>视图处理业务逻辑–>响应请求(template或response)
二、使用步骤
1.环境安装
-
安装redis,具体教程这里忽略,安装成功后启动redis
-
安装第三方模块
'django_celery_results', # 定时任务结果
'django_celery_beat', # 定时任务分发
pip install django_celery_results
pip install django_celery_beat
1.配置
- 在项目setting.py中设置信息:
主要设置django_celery_results,django_celery_beat
以及消息中间件
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes'