栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

win10上django框架中使用celery4.4.2版本及redis实现任务调用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

win10上django框架中使用celery4.4.2版本及redis实现任务调用

1.安装

pip install celery==4.4.2

2.在项目中创建一个自己的mycelery包用于存放任务及配置等内容

3.在config.py文件中指定任务队列及结果队列地址

# 任务队列的链接地址
broker_url = 'redis://127.0.0.1:6379/14'

# 结果队列的链接地址
result_backend = 'redis://127.0.0.1:6379/15'

4.在main.py中创建celery应用等

from celery import Celery
import os

# os.environ.setdefault('FORKED_BY_MULTIPROCESSING', '1')
# 1. 初始化Celery应用对象
app = Celery()

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yd_api.settings.dev')
import django

django.setup()

# 2. 加载初始化配置
app.config_from_object("mycelery.config")

# 3. 注册异步任务
app.autodiscover_tasks(['mycelery.sms'])

# 4. 在终端启动celery,win10下需要采用协程来运行
pip install eventlet
celery -A mycelery.main worker -l info -P eventlet

5.在sms/tasks.py中指定任务方法

from mycelery.main import app
from .yuntongxun.sms import CCP
from yd_api.settings import constants
import logging

log = logging.getLogger('django')


@app.task(name="send_sms")
def send_sms(mobile, sms_code):
    ccp = CCP()
    ret = ccp.send_template_sms(mobile, [sms_code, constants.SMS_EXPIRE_TIME // 60], constants.SMS_TEMPLATE_ID)
    # print(f"ret={ret}")
    if not ret:
        log.error("用户注册短信发送失败!手机号:%s" % mobile)
    # print("mobile=%s, sms_code=%s", mobile, sms_code)

6.在views.py中调用

7.在终端执行

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932522.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号