Django celery非同步傳送郵件

2021-10-17 03:43:14 字數 1869 閱讀 9247

使用基於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 ...