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) #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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!