Django Celery异步任务搭建

Celery异步任务搭建

Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。

Celery的架构由三部分组成,消息中间件(message broker),**任务执行单元(worker)任务执行结果存储(task result store)**组成。

消息中间件

Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等等

任务执行单元

Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。

任务结果存储

Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, redis等

另外, Celery还支持不同的并发和序列化的手段

  • 并发:Prefork, Eventlet, gevent, threads/single threaded
  • 序列化:pickle, json, yaml, msgpack. zlib, bzip2 compression, Cryptographic message signing 等等

搭建步骤

Windows下使用celery模块,不太好用的样子

方法一(使用djcelery)

1、安装djcelery模块

pip install redis==2.10.6   # 否则出现版本不契合的问题
pip install django-celery

2、setting中配置celery相关信息

import djcelery  # 导包

djcelery.setup_loader()  # 初始化celery异步任务
BROKER_URL = 'redis://127.0.0.1:6379/1'  # 消息中间件,任务存放的redis容器地址
CELERY_IMPORTS = ('OneApp.tasks')  # 指定celery任务文件
CELERY_TIMEZONE = 'Asia/Shanghai'  # Celery定时任务使用的时区
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'  # Celery调度程序

3、项目主目录中创建celery.py文件
在这里插入图片描述

from __future__ import absolute_import, unicode_literals

import os
from celery import Celery
from django.conf import settings


# 把 Celery 和 Django进行结合,识别和加载 Django 的配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DJCelery.settings')

# 创建Celery实例对象
appCelery = Celery('appCelery')

# 通过appCelery对象加载配置
appCelery.config_from_object('django.conf:settings')

# 如果在app有创建tasks.py文件,会自动检索
appCelery
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值