celery

 

celery:

  • 任务task:就是一个Python函数。
  • 队列queue:将需要执行的任务加入到队列中。
  • 工人worker:在一个新进程中,负责执行队列中的任务。
  • 代理人broker:负责调度,在布置环境中使用redis

通常将比较耗时的任务交给celery,提高用户体验。

pip install celery

案例:

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)

 

 

 

最后开启任务处理者:

celery -A celery_task.task worker -l info

服务器——任务队列——任务处理者

可以在不同的主机上

 

posted @ 2019-10-17 16:14  yangzixiongh  阅读(148)  评论(1编辑  收藏  举报