celery 分布式异步队列框架使用方法
简介:
Celery 是一个python开发的异步分布式任务调度模块,是一个消息传输的中间件,可以理解为一个邮箱,每当应用程序调用celery的异步任务时,会向broker传递消息,然后celery的worker从中取消息
Celery 用于存储消息以及celery执行的一些消息和结果
对于brokers,官方推荐是rabbitmq和redis
对于backend,也就是指数据库,为了简单一般使用redis
安装:
windows下:
pip install celery
pip install eventlet (运行需要依赖此包)
linux 下:
pip install celery
crontab_task,taobaovideo_task 分别是两个任务,
main.py
from celery import Celery
import os #将settings添加到环境中
os.environ['DJANGO_SETTINGS_MODULE'] = 'TaoBaoVideoProject.settings' #注册异步app 参数是你的项目名称
celery_app = Celery('TaoBaoVideoProject')
#导入配置文件
celery_app.config_from_object('celery_tasks.config')
celery_app.autodiscover_tasks(['celery_tasks.taobaovideo_task','celery_tasks.crontab_task'])
# 最下面这行,每加一个任务,在这里注册写入即可,
config.py
broker_url = "redis://127.0.0.1:6379/5" #redis设置密码的:redis://xxxxxxx@127.0.0.1:6379/5
result_backend = "redis://127.0.0.1:6379/6"
timezone = 'Asia/Shanghai'
# 这里注意首先需要把redis数据库安装完成
tasks.py中
视图函数中这样调用:
启动命令:
celery -A celery_tasks.main worker -l info -P eventlet
这个则代表启动成功,如果实在服务器上运行的话我们需要添加守护进程,命令如下:
celery multi start w1 -A celery_tasks.main -l info --logfile=./celerylog.log
这个则代表运行成功,并在当前文件夹生成日志文件
查询该任务的执行结果:
具体实现细节可参考:https://www.cnblogs.com/cwp-bg/p/8759638.html
celrey定时任务实现:
tasks.py中:
from celery.task import periodic_task
from utils.crontab_video_method import TaoBaoVideoUpload @periodic_task(run_every=) #90秒执行一次该方法
def crontab_upload_video():
TaoBaoVideoUpload().detection_video()
return '定时任务执行成功'
命令:
celery -A celery_tasks.main beat -l info
成功运行结果如下:
具体方法参考:https://www.cnblogs.com/52forjie/p/9364136.html
celery 分布式异步队列框架使用方法的更多相关文章
- 安装 rabbitmq ,通过生成器获取redis列表数据 与 Celery 分布式异步队列
一.安装rabbitmq @全体成员 超简易安装rabbitmq文档 1.安装配置epel源rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/ ...
- celery 分布式异步任务框架(celery简单使用、celery多任务结构、celery定时任务、celery计划任务、celery在Django项目中使用Python脚本调用Django环境)
一.celery简介: Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async tas ...
- Celery分布式异步任务框架
一.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统.专注于实时处理的异步任务队列,同时也支持定时任务 二.Celery架构 1.Celery的架构由三部分组成: 消 ...
- 【转】快速理解Kafka分布式消息队列框架
from:http://blog.csdn.net/colorant/article/details/12081909 快速理解Kafka分布式消息队列框架 标签: kafkamessage que ...
- celery分布式异步框架
1.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成,消息中间件( ...
- 快速理解Kafka分布式消息队列框架
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ ==是什么 == 简单的说,K ...
- [转载] 快速理解Kafka分布式消息队列框架
转载自http://blog.csdn.net/xiaolang85/article/details/18048631 ==是什么 == 简单的说,Kafka是由Linkedin开发的一个分布式的消息 ...
- Python开发【模块】:Celery 分布式异步消息任务队列
Celery 前言: Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个 ...
- 分布式队列celery 异步----Django框架中的使用
仅仅是个人学习的过程,发现有问题欢迎留言 一.celery 介绍 celery是一种功能完备的即插即用的任务对列 celery适用异步处理问题,比如上传邮件.上传文件.图像处理等比较耗时的事情 异步执 ...
随机推荐
- SRS之接收推流线程:recv
SrsPublishRecvThread.SrsRecvThread.SrsReusableThread2.SrsThread 之间的关系图 1. recv 线程函数:SrsThread::threa ...
- Mac os文件名大小写不敏感
Mac os文件名大小写不敏感,但是linux是大小写敏感的. 让我们代入一个场景, 创建一个新文件,你习惯以小写字母开头,接着在其他module中import,看起来一切都正常,emmm,确实没有任 ...
- MySQL——逻辑分层与存储引擎
MySQL是最受欢迎的开源SQL数据库管理系统,由Oracle Corporation开发,分发和支持. MySQL网站(http://www.mysql.com/)提供有关MySQL软件的最新信息. ...
- stm8问题记录
sprintf 错误 现象:打印不出来数字 需要包含#include<stdio.h>
- Tooltip 文字提示
常用于展示鼠标 hover 时的提示信息. 基础用法 在这里我们提供 9 种不同方向的展示方式,可以通过以下完整示例来理解,选择你要的效果. 使用content属性来决定hover时的提示信息.由pl ...
- RESTful 介绍
什么是RESTful?一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务端交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. ...
- linux常用命令(19)find xargs
在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...
- 虚拟机安装: vmware + ubuntu16.04
参考博客:https://blog.csdn.net/qq1326702940/article/details/82322079 这个博客讲的很详细,只要ubuntu版本相同,应该是一模一样. 注意点 ...
- DDoS攻击的几种类型
DDoS攻击的几种类型 随着网络攻击的简单化,如今DDoS攻击已经不止出现在大型网站中,就连很多中小型网站甚至是个人网站往往都可能面临着被DDoS攻击的的风险.或许很多站长对DDoS攻击并不是很了 ...
- JavaEE_Test2_Servlet
package servlet; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.P ...