首页 / REDIS / redis-django
redis-django
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了redis-django,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2941字,纯文字阅读大概需要5分钟。
内容图文
![redis-django](/upload/InfoBanner/zyjiaocheng/867/8414afcc6b81412790085e6276763cd3.jpg)
安装环境
pip install celery pip install redis
配置Celery
异步执行代码
tesks.py
from django.core.mail import send_mail from django.conf import settings from django.template import loader, RequestContext from celery import Celery, platforms # 初始化一个Celery类的实例对象 app = Celery('celery_tasks.tasks') # 配置应用 app.conf.update( # 配置broker, 这里我们用redis作为broker BROKER_URL='redis://127.0.0.1:6379/1', ) # 设置app自动加载任务 # 从已经安装的app中查找任务 app.autodiscover_tasks(settings.INSTALLED_APPS) # 调用celery发邮件 @app.task def send_register_active_email(to_email, username, token): '''发送激活邮件''' subject = '天天生鲜欢迎信息' message = '' sender = settings.EMAIL_FROM receiver = [to_email] html_message = '<h1>%s, 欢迎您成为天天生鲜注册会员</h1>请点击下面链接激活您的账户<br/><a href="http://127.0.0.1:8000/user/active/%s">http://127.0.0.1:8000/user/active/%s</a>' % (username, token, token) send_mail(subject, message, sender, receiver, html_message=html_message)
views.py
from celery_tasks.tasks import send_register_active_email # 将send_register_active_email任务加入到celery队列中,如果my_task函数有参数,可通过delay()传递 send_register_active_email.delay(email, username, token)
记住:当有多个装饰器的时候,app.task一定要在最外层;
启动服务
celery -A tasks worker -Q queue -l info
存储任务结果
此处需要用到额外包django_celery_results, 先安装包:
pip install django-celery-results
settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'demo', 'django_celery_results', # 注意此处应用名为下划线 ]
回到celery_demo/celery.py模块中,增加配置信息如下:
from django.core.mail import send_mail from django.conf import settings from django.template import loader, RequestContext from celery import Celery, platforms # 初始化一个Celery类的实例对象 app = Celery('celery_tasks.tasks') # 配置应用 app.conf.update( # 配置broker, 这里我们用redis作为broker BROKER_URL='redis://127.0.0.1:6379/1', # 使用项目数据库存储任务执行结果 CELERY_RESULT_BACKEND='django-db', ) # 设置app自动加载任务 # 从已经安装的app中查找任务 app.autodiscover_tasks(settings.INSTALLED_APPS) # 调用celery发邮件 @app.task def send_register_active_email(to_email, username, token): '''发送激活邮件''' subject = '天天生鲜欢迎信息' message = '' sender = settings.EMAIL_FROM receiver = [to_email] html_message = '<h1>%s, 欢迎您成为天天生鲜注册会员</h1>请点击下面链接激活您的账户<br/><a href="http://127.0.0.1:8000/user/active/%s">http://127.0.0.1:8000/user/active/%s</a>' % (username, token, token) send_mail(subject, message, sender, receiver, html_message=html_message)
创建django_celery_results应用所需数据库表, 执行迁移文件:
python manage.py migrate django_celery_results
定时任务
如果我们想某日某时执行某个任务,或者每隔一段时间执行某个任务,也可以使用celery来完成
1.安装
pip install django-celery pip install django-redis==4.12.1 pip install celery==4.4.0 pip install django-celery-beat==2.1.0 pip install redis==3.5.3
内容总结
以上是互联网集市为您收集整理的redis-django全部内容,希望文章能够帮你解决redis-django所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。