使用基於django搭建的後端框架,並使用celery進行非同步傳送郵件。
1.setting.py檔案中配置
"""配置郵件伺服器"""
# 指定郵件後端
email_backend =
'django.core.mail.backends.smtp.emailbackend'
# 發郵件主機
email_host =
'smtp.263.net'
# 發郵件埠
email_port =
25# 授權的郵箱
email_host_user =
'***@***.com'
# 郵箱授權時獲得的密碼,非註冊登入密碼
email_host_password =
'******x'
# 發件人抬頭
email_from =
'***@***.com'
# 關閉tls傳送郵件
email_use_tls =
false
2.在專案中建立乙個python package
,進入該目錄並在該目錄下建立config.py檔案。
目錄結構如下:
worker$ tree
.├── config.py
└── __init__.py
init檔案
import os
from celery import celery
from worker import config
# 載入django的環境
os.environ.setdefault(
"django_settings_module"
,"la.settings"
)# 例項化celery
'la'
)# 載入配置檔案
# 自動註冊任務
)
config檔案
# 把任務放到哪乙個佇列
broker_url =
'redis:'
# 設定時區
enable_utc =
true
timezone =
'asia/shanghai'
3.建立傳送郵件函式from django.core.mail import send_mail
defemail
(email_messages, recipient_list)
:"""
傳送郵件
:param email_messages: html格式郵件內容
:param recipient_list: 收件人清單列表
:return:
"""send_mail(
subject=
'測試郵件!'
, message='',
from_email=
'***@***.com'
, recipient_list=recipient_list,
html_message=email_messages,
)
4.呼叫函式from common.common import email
# 郵件內容
email_messages =
''# 收件人清單
recipient_list =
['***@***.com'
]# 傳送郵件
email(email_messages, recipient_list)
django celery實現非同步訊息佇列
步驟 1.建立專案 django admin startproject project 3.配置settings.py debug false allowed hosts 127.0.0.1 celery djcelery.setup loader broker url redis celerybe...
django celery 任務訊息佇列
描述 為提高 效能,很多耗時,但不影響頁面正常的操作,可丟給訊息佇列非同步執行 比如sns 的 新鮮事兒 系統,我發帖之後,會給所有關注我的人推送一條通知。乍一看沒什麼難的,發帖之後找出關注我的人,然後生成相應的訊息記錄就行了。但問題是,100個人關注我,就要執行100條insert查詢,更要命的是...
Django Celery定時任務
celery是由python開發的乙個簡單 靈活 可靠的處理大量任務的分發系統,它不僅支援實時處理也支援任務排程。pip3 install django celery beat pip3 install redis 寫入配置 celery broker url redis 密碼 127.0.0.1 ...