celery

 

celery:html

  • 任務task:就是一個Python函數。
  • 隊列queue:將須要執行的任務加入到隊列中。
  • 工人worker:在一個新進程中,負責執行隊列中的任務。
  • 代理人broker:負責調度,在佈置環境中使用redis

一般將比較耗時的任務交給celery,提升用戶體驗。redis

pip install celerydjango

案例:服務器

from celery import Celery
from django.conf import settings
from django.core.mail import send_mail
#加載配置信息
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ttsx.settings")
django.setup()

app = Celery('celery_task.task', broker='redis://192.168.5.135:6379/1')

@app.task
def send_email_token(email, username, token):

    subject = 'ttsx歡迎你'
    message = ''
    sender = settings.EMAIL_FROM
    recvlist = [email]
    html_message = '<h1>%s ,歡迎你</h1><br>點擊一下連接激活用戶<a href="http:192.168.5.135:8000/user/active/%s">http:192.168.5.135:8000/user/active/%s</a>' % (
    username, token, token)
    send_mail(subject, message, sender, recvlist, html_message=html_message)

 

 

 

最後開啓任務處理者:app

celery -A celery_task.task worker -l info函數

服務器——任務隊列——任務處理者spa

能夠在不一樣的主機上代理

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息