django异步通信框架Celery

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

1.安装


pip install Django-celery==3.3.1 # django3以上的需要安装 
pip install Django-celery==3.2.2 # django2

pip install Django-redis  

pip install redis==2.10.6 
# 如果redis版本过高后面会出现错误下面这个
#'str' object has no attribute 'items' (ven)

pip install celery==4.4.7 # python3.9
如果是python3.6 安装pip install celery==4.2.1

2.setting.py配置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    # 异步
    'djcelery',
]

3.在settings.py同级下创建celery.py和tasks.py

celery:celery的配置
tasks:异步任务
celery.py

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

# 设置celery的默认工作目录
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxxxx.settings")
# 启动celery项目(要加入broker,如果用的是redis的话,不然默认开启的是rabbitmq-server)
app = Celery(broker='redis://localhost:6379/3')
# 项目加载配置
app.config_from_object("django.conf:settings")
# 加载djcelery
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
# 支持以root启动
platforms.C_FORCE_ROOT = True

tsaks.py

from celery import task
import time

@task
def task1():
    """无参方法"""
    print("task1...begin...")
    time.sleep(10)  # 模拟耗时操作
    print("task1...end...")

@task
def task2(a, b):
    """有参方法"""
    print("task2...begin...a={},b={}".format(a, b))
    time.sleep(10)  # 模拟耗时操作
    print("task2...end...")
    return a +
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

办法总比困难多多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值