celery分布式任务队列

2024-06-13 18:58
文章标签 队列 分布式 任务 celery

本文主要是介绍celery分布式任务队列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

celery分布式任务队列

Celery是基于分布式消息传递的异步任务队列/作业队列。它专注于实时操作,但也支持调度。

执行单元(称为任务)使用多处理,Eventlet或gevent在一个或多个工作服务器上并发执行。任务可以异步(在后台)或同步执行(等到准备就绪)。

Celery用于生产系统,每天处理数百万个任务。
异步实时处理
支持扩展
支持多种消息队列
使用AMQP协议

应用场景:

  • 后台任务
  • 一步操作
  • 定期执行的工作
  • 一定程度上的分布式计算

核心关键词:

  • Task queue:任务队列,描述在多线程或主机间任务工作的一种机制

  • Task:任务,队列输入,工作单元

  • Broker:消息代理,转发任务

  • Worker:工作者,负责执行任务
    在这里插入图片描述
    首先安装RabbitMQ-server请在我的博客里查找安装的方法
    安装redis

    yum install redis
    systemctl start redis
    ps -aux|grep redis
    #如果运行中出错  请修改celery如下所示
    pip install --upgrade https://github.com/celery/celery/tarball/master
    

pip install celery

  • 发送任务
  • 定时执行任务
  • 多台机器并发工作

task—>MQ—>worker—>db
Linux操作
1.创建task

vim task.py

在这里插入图片描述
2.启动celery服务

celery worker -A task -l info

在这里插入图片描述
在这里插入图片描述
3.执行worker任务
打开ipython

from task import worker
w = worker.delay('log')
w.ready()
w.get()

在这里插入图片描述

[2019-03-05 17:19:21,274: WARNING/ForkPoolWorker-1] log工作正在进行
[2019-03-05 17:19:23,277: INFO/ForkPoolWorker-1] Task task.worker[fce96b65-68c9-4489-bfc2-f2a2d1bbc2aa] succeeded in 2.0033699511550367s: 'logOK'

下面说明执行定时任务

vim run.py

在这里插入图片描述

 vim config.py

在这里插入图片描述

vim task_log.py

在这里插入图片描述

启动

#celery worker -A task_log -l info
celery beat -A task_log -l info

分布式

在这里插入图片描述

在这里插入图片描述
run.py的内容

在这里插入图片描述

在这里插入图片描述
大家可以看出任务是交替运行的

这篇关于celery分布式任务队列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1058153

相关文章

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

Redis分布式锁中Redission底层实现方式

《Redis分布式锁中Redission底层实现方式》Redission基于Redis原子操作和Lua脚本实现分布式锁,通过SETNX命令、看门狗续期、可重入机制及异常处理,确保锁的可靠性和一致性,是... 目录Redis分布式锁中Redission底层实现一、Redission分布式锁的基本使用二、Red

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景