Django配置Celery执行异步和同步任务(tasks))
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django配置Celery执行异步和同步任务(tasks))相关的知识,希望对你有一定的参考价值。
参考技术A celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上执行任务调度。采用典型的生产者-消费者模型,主要由三部分组成:比如系统上线前后台批量导入历史数据,发送短信、发送邮件等耗时的任务
1.安装RabbitMQ,这里我们使用RabbitMQ作为broker,安装完成后默认启动了,也不需要其他任何配置
Ubuntu linux安装
CentOS Linux 安装
苹果mac 安装需要配置
配置环境变量 (苹果用户)
启动rabbitmq-server
2.安装celery
3.celery用在django项目中,django项目目录结构(简化)如下
4.创建 oa/celery.py 主文件
5.在 oa/__init__.py 文件中增加如下内容,确保django启动的时候这个app能够被加载到
6.各应用创建tasks.py文件,这里为 users/tasks.py
7.views.py中引用使用这个tasks异步处理
8.启动celery
9.这样在调用post这个方法时,里边的add就可以异步处理了
定时任务的使用场景就很普遍了,比如我需要定时发送报告给老板~
1. oa/celery.py 文件添加如下配置以支持定时任务crontab
3.启动celery beat,celery启动了一个beat进程一直在不断的判断是否有任务需要执行
以上是关于Django配置Celery执行异步和同步任务(tasks))的主要内容,如果未能解决你的问题,请参考以下文章
django使用celery执行异步任务时采用信号实现每个任务日志独立存放(after_setup_logger)
Celery 3 版本 定时执行与 异步执行 | Django 案例