安裝兩個python包:
pip install celery==3.1.25
pip install django-celery==3.1.17
在配置檔案settings.py中做如下配置:
a) 首先註冊應用djcelery並做如下配置。
import djcelery
djcelery.setup_loader()
broker_url = 'redis:'
b) 生成djcelery所依賴的表。
python manage.py migrate
c) 在應用目錄下新建乙個tasks.py檔案。
#d) 任務函式中將傳送郵件任務加入任務佇列寫celery任務函式
from celery import
task
from django.core.mail import
send_mail
from django.conf import
settings
import
time
@task
defsend_register_success_mail(username, password, email):
message = '
請記好您的資訊:
使用者名稱:
' + username + '
密碼:' +password
send_mail(
'歡迎資訊
', '', settings.email_from, [email], html_message=message)
time.sleep(5)
#啟動worker進行/user/register_handle/
defregister_handle(request):
'''實現使用者註冊
'''#
1.接收使用者的註冊資訊
username = request.post.get('
user_name')
password = request.post.get('
pwd'
) email = request.post.get('
email')
#2.儲存進資料庫
passport.objects.add_one_passport(username=username, password=password, email=email)
#3.給使用者註冊郵箱發郵件
#message = '請記好您的資訊:
使用者名稱:'+username+'
密碼:'+password
#send_mail('歡迎資訊', '', settings.email_from, [email], html_message=message)
#time.sleep(5)
#將任務放入任務佇列
send_register_success_mail.delay(username=username, password=password, email=email)
#3.跳轉到登入頁面 /user/login/
return redirect('
/user/login/
')
python manage.py celery worker --loglevel=info
非同步傳送郵件 celery
包結構 依賴包 redis3.4.1 celery4.4.1 eventlet 0.25.1 首先建立乙個celery tasks的python包,在celery tasks的 init py中配置 drugstore是你專案的主目錄名稱,即有settings.py檔案的包名 這個需要改為你自己的 ...
celery非同步傳送簡訊
celery專案中的所有導包位址,都是以celery base dir為基準設定 執行celery命令時,也需要進入celery base dir目錄執行 celery base dir os.path.dirname os.path.abspath file def send sms code s...
celery非同步任務傳送簡訊驗證碼
進行處理,處理之後把結果儲存到backend中。在mian.py中主要是celery的主程式 from celery import celery import os if not os.getenv django settings module os.environ django settings ...