django中celery服务器和django分离的一种使用方法
2018-02-20 17:47
465 查看
" http://www.celeryproject.org/ " 官网英文版本
" http://docs.jinkan.org/docs/celery/" 官方中文版本
"客户端=>生产者" "worker=>消费者"
broker=> 被观察者 worker => 观察者
1.django 项目中建立一个包 命名为 celery_tasks(个人癖好而定)
2.celery_tasks 包中创建一个 task.py 文件
# 1.参数1指定任务所在的路径从包名开始
# 2.参数2指定任务队列broker,可以作为任务队列的有多种,此处以redis数据库为例
celery_client = Celery("celery_tasks.tasks", broker="redis://127.0.0.1:6379/4")
"生产者" "消费者"
# 1.参数1指定任务所在的路径从包名开始
# 2.参数2指定任务队列broker,可以作为任务队列的有多种,此处以redis数据库为例
# 3.生产任务 就是函数
"生产者" "消费者"
# django初始化不然找不到settings 复制一份项目到另外一台服务器,
##################这段代码只在celery服务器上存在####################"
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "django项目的根目录名称.settings"
# 放到Celery服务器上时添加的代码
import django
django.setup()
import time
# 创建celery对象/客户端
from celery import Celery
#####################################
@celery_client.task # ===> celery_client.task(send_active_email) 装饰就是method
def send_active_email(to_email, user_name, token):
"""封装发送邮件方法"""
time.sleep(10)
subject = "test" # 标题
body = "" # 纯文本邮件体写这里
from django.conf import settings # 导入settings,方便粘贴方法不用考虑引用问题
sender = settings.EMAIL_FROM # 发件人
receiver = [to_email] # 接收人,可以多个
html_body = '<h1>尊敬的用户 %s, 感谢您注册XXXXXXXXX!</h1>' \
'<br/><p>请点击此链接激活您的帐号<a href="http://127.0.0.1:8000/users/active/%s">' \
'http://127.0.0.1:8000/users/active/%s</a></p>' % ('XXXX', 'XXXXX', 'XXXXXX')
from django.core.mail import send_mail
send_mail(subject, body, sender, receiver, html_message=html_body) # html字符串写这里
# 3. 写好以后将项目拷贝一份到另外一台服务器然后把##中的django初始化的代码加上,执行第4步的命令即可测试
# 4最后 work on 到你的虚拟环境
"生产者" "消费者"
" http://docs.jinkan.org/docs/celery/" 官方中文版本
"客户端=>生产者" "worker=>消费者"
broker=> 被观察者 worker => 观察者
1.django 项目中建立一个包 命名为 celery_tasks(个人癖好而定)
2.celery_tasks 包中创建一个 task.py 文件
# 1.参数1指定任务所在的路径从包名开始
# 2.参数2指定任务队列broker,可以作为任务队列的有多种,此处以redis数据库为例
celery_client = Celery("celery_tasks.tasks", broker="redis://127.0.0.1:6379/4")
"生产者" "消费者"
# 1.参数1指定任务所在的路径从包名开始
# 2.参数2指定任务队列broker,可以作为任务队列的有多种,此处以redis数据库为例
# 3.生产任务 就是函数
"生产者" "消费者"
# django初始化不然找不到settings 复制一份项目到另外一台服务器,
##################这段代码只在celery服务器上存在####################"
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "django项目的根目录名称.settings"
# 放到Celery服务器上时添加的代码
import django
django.setup()
import time
# 创建celery对象/客户端
from celery import Celery
#####################################
@celery_client.task # ===> celery_client.task(send_active_email) 装饰就是method
def send_active_email(to_email, user_name, token):
"""封装发送邮件方法"""
time.sleep(10)
subject = "test" # 标题
body = "" # 纯文本邮件体写这里
from django.conf import settings # 导入settings,方便粘贴方法不用考虑引用问题
sender = settings.EMAIL_FROM # 发件人
receiver = [to_email] # 接收人,可以多个
html_body = '<h1>尊敬的用户 %s, 感谢您注册XXXXXXXXX!</h1>' \
'<br/><p>请点击此链接激活您的帐号<a href="http://127.0.0.1:8000/users/active/%s">' \
'http://127.0.0.1:8000/users/active/%s</a></p>' % ('XXXX', 'XXXXX', 'XXXXXX')
from django.core.mail import send_mail
send_mail(subject, body, sender, receiver, html_message=html_body) # html字符串写这里
# 3. 写好以后将项目拷贝一份到另外一台服务器然后把##中的django初始化的代码加上,执行第4步的命令即可测试
# 4最后 work on 到你的虚拟环境
celery -A celery_tasks.tasks worker -l info
"生产者" "消费者"
相关文章推荐
- django中celery简单使用的一种方法
- 如何使用mysql(lamp)分离环境搭建dedecms织梦网站及apache服务器常见的403http状态码及其解决方法
- 异步任务队列Celery在Django中的使用方法
- 使用Django内置Web服务器和sqlite3遇到的问题及解决方法
- QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)
- 在VB中使用水晶报表的一种简易编程方法
- 同一台服务器上,安装OC4J之后Oracle数据库不能使用,解决方法
- 在VB中使用水晶报表的一种简易编程方法
- SQL安装时出错,提示:安装程序配置服务器失败 参考服务器错误日志。针对其中一种情况的解决方法!
- 在VB中使用水晶报表的一种简易编程方法
- Unmanaged Code和Managed Code混合编程中使用COM接口指针的一种方法
- (转)Apache服务器使用.htaccess实现图片防盗链方法教程
- amule 服务器 使用方法
- 使用CuteFTP登陆FTP(serv-U)服务器后无法LIST目录和文件的解决方法
- 使用CuteFTP登陆FTP(serv-U)服务器后无法LIST目录和文件的解决方法
- 一种简便的安装使用 qemu 的方法
- 字符串根据多个字符进行分割的一种方法(使用split而不是regex.split更不是replace)
- 在.NET中发送邮件,使用回执功能中遇到问题的解决方法[在NOTES服务器上,C#,.NET2.0环境]
- 今天又学会了一种使用插件的新方法,并且学着作了个简单的插件。