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
服务器——任务队列——任务处理者
可以在不同的主机上