安装依赖
pip install django-celery-beat pip install django-celery-email pip install celery pip install msgpack-python pip install msgpack
在settings文件中配置
添加app应用到installed_apps中
"djcelery_email", "django_celery_beat"
修改.env文件配置:
#邮箱后端,使用celery email DJANGO_EMAIL_BACKEND=djcelery_email.backends.CeleryEmailBackend DJANGO_EMAIL_HOST=smtp.qq.com DJANGO_EMAIL_HOST_USER=xxx@qq.com # 您的邮箱号 DJANGO_EMAIL_HOST_PASSWORD=你的邮箱密码 DJANGO_DEFAULT_FROM_EMAIL=默认发送的邮箱号 #CELERY CELERY_BROKER_URL=redis://127.0.0.1:6379/1 #使用redis 1作为消息代理 CELERY_RESULT_BACKEND=redis://127.0.0.1:6379/2 #把任务结果放在redis2库中
添加配置项:
# Celery # ------------------------------------------------------------------------------ if USE_TZ: # http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-timezone CELERY_TIMEZONE = TIME_ZONE # http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-broker_url CELERY_BROKER_URL = env("CELERY_BROKER_URL") # http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_backend CELERY_RESULT_BACKEND = env('CELERY_RESULT_BACKEND') # http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-accept_content CELERY_ACCEPT_CONTENT = ["json", 'msgpack'] # http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-task_serializer CELERY_TASK_SERIALIZER = "msgpack" # http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_serializer CELERY_RESULT_SERIALIZER = "json" # http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-time-limit # TODO: set to whatever value is adequate in your circumstances CELERY_TASK_TIME_LIMIT = 5 * 60 # http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-soft-time-limit # TODO: set to whatever value is adequate in your circumstances CELERY_TASK_SOFT_TIME_LIMIT = 60 # http://docs.celeryproject.org/en/latest/userguide/configuration.html#beat-scheduler CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler" EMAIL_BACKEND = env( "DJANGO_EMAIL_BACKEND", default="djcelery_email.backends.CeleryEmailBackend" )
添加邮箱配置项:
EMAIL_HOST = env('DJANGO_EMAIL_HOST', default="smtp.qq.com") EMAIL_USE_SSL = env('DJANGO_EMAIL_USE_SSL', default=True) EMAIL_PORT = env('DJANGO_EMAIL_PORT', default=465) EMAIL_HOST_USER = env('DJANGO_EMAIL_HOST_USER') EMAIL_HOST_PASSWORD = env('DJANGO_EMAIL_HOST_PASSWORD') DEFAULT_FROM_EMAIL = env('DJANGO_DEFAULT_FROM_EMAIL')
编写celery文件
在项目配置的目录下新增celery_app.py文件
import os from celery import Celery # set the default Django settings module for the 'celery' program. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production") app = Celery("你的项目名") # Using a string here means the worker doesn't have to serialize # the configuration object to child processes. # - namespace='CELERY' means all celery-related configuration keys # should have a `CELERY_` prefix. app.config_from_object("django.conf:settings", namespace="CELERY") # Load task modules from all registered Django app configs. app.autodiscover_tasks()
在某app目录下新增tasks.py文件:
from django.conf import settings from django.core.mail import send_mail from config import celery_app # 打上装饰器celery就会自动搜索到添加到任务中 @celery_app.task() def send_activity_verify_email(): """异步发送新订单邮件""" title = '[学时通] 您有一个新活动等待审核' message = '您有一个新活动等待审核,请进入学时通管理系统查看' send_mail(title, message=message, from_email=settings.DEFAULT_FROM_EMAIL, recipient_list=settings.EMAIL_RECIPIENT_LIST)
启动celery
来到项目目录下:
执行以下命令
其中config为我的项目配置目录,config.celery_app指我项目配置目录下的celery_app文件
$ /usr/local/python3/bin/celery -A config.celery_app worker -l info
当点击发送邮件时,celery会把任务添加到redis 1库中,邮箱发送完毕后,会在redis 2库中显示结果。
以上这篇Django集成celery发送异步邮件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 明达年度发烧碟MasterSuperiorAudiophile2021[DSF]
- 英文DJ 《致命的温柔》24K德国HD金碟DTS 2CD[WAV+分轨][1.7G]
- 张学友1997《不老的传说》宝丽金首版 [WAV+CUE][971M]
- 张韶涵2024 《不负韶华》开盘母带[低速原抓WAV+CUE][1.1G]
- lol全球总决赛lcs三号种子是谁 S14全球总决赛lcs三号种子队伍介绍
- lol全球总决赛lck三号种子是谁 S14全球总决赛lck三号种子队伍
- 群星.2005-三里屯音乐之男孩女孩的情人节【太合麦田】【WAV+CUE】
- 崔健.2005-给你一点颜色【东西音乐】【WAV+CUE】
- 南台湾小姑娘.1998-心爱,等一下【大旗】【WAV+CUE】
- 【新世纪】群星-美丽人生(CestLaVie)(6CD)[WAV+CUE]
- ProteanQuartet-Tempusomniavincit(2024)[24-WAV]
- SirEdwardElgarconductsElgar[FLAC+CUE]
- 田震《20世纪中华歌坛名人百集珍藏版》[WAV+CUE][1G]
- BEYOND《大地》24K金蝶限量编号[低速原抓WAV+CUE][986M]
- 陈奕迅《准备中 SACD》[日本限量版] [WAV+CUE][1.2G]