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做异步任务

django使用celery执行异步任务时采用信号实现每个任务日志独立存放(after_setup_logger)

Celery异步任务框架

Celery 3 版本 定时执行与 异步执行 | Django 案例

celery:celery介绍架构基本使用,celery执行异步任务延迟任务定时任务,django中使用celery。

异步任务队列Celery在Django中的使用