pip install -U celery==4.3.0
xiaolan/ # 项目主目录
├── mycelery/
├── config.py # 配置文件
├── __init__.py
├── main.py # 主程序
└── sms/ # 一个目录可以放置多个任务,该目录下存放当前任务执行时需要的模块或依赖
└── tasks.py # 任务的文件,名称必须是这个
# 注意: 我的redis因为没有设置密码所有可以这样用
# 任务队列的链接地址
broker_url = 'redis://127.0.0.1:6379/15'
# 结果队列的链接地址
result_backend = 'redis://127.0.0.1:6379/14'
import os
import django
from celery import Celery
# 主程序
# 创建celery实例对象
app = Celery("xiaolan")
# 把celery和django进行结合, 识别和加载django的配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'xiaolan.settings.dev')
# 对django框架进行初始化
django.setup()
# 通过app对象加载配置
app.config_from_object("mycelery.config")
# 加载任务
# 参数必须是一个列表, 里面的每一个都是任务的路径名称
# 列: app.autodiscover_tasks(["任务1", "任务2"])
app.autodiscover_tasks(["mycelery.sms"])
# 启动Celery的命令
# 强烈建议切换目录到mycelery目录下启动
# celery -A main worker --loglevel=info
from mycelery.main import app
from .yuntongxun.sms import CCP
from xiaolan.settings import constants
import logging
from django.conf import settings
log = logging.getLogger("django")
@app.task(name="send_sms")
def send_sms(mobile, sms_code):
"""异步发送短信"""
ccp = CCP()
try:
result = ccp.send_template_sms(mobile, [sms_code, constants.SMS_CODE_EXPIRE//60 ], settings.SMS.get("_templateID"))
return result
except:
log.error("发送短信验证码失败!手机号:%s" % mobile)
mycelery/
├── config.py
├── __init__.py
├── main.py
└── sms/
├── __init__.py
├── tasks.py
└── yuntongxun
├── CCPRestSDK.py
├── __init__.py
├── sms.py
└── xmltojson.py
# 1. 声明一个和celery一模一样的任务函数,但是我们可以导包来解决
from mycelery.sms.tasks import send_sms
# 2. 调用任务函数,发布任务
send_sms.delay(mobile,sms_code)
# send_sms.delay() 如果调用的任务函数没有参数,则不需要填写任何内容
celery -A mycelery.main worker --loglevel=info
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
创新互联建站是专业的盐边网站建设公司,盐边接单;提供网站建设、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行盐边网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!