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

相关文章

golang实现延迟队列(delay queue)的两种实现

《golang实现延迟队列(delayqueue)的两种实现》本文主要介绍了golang实现延迟队列(delayqueue)的两种实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录1 延迟队列:邮件提醒、订单自动取消2 实现2.1 simplChina编程e简单版:go自带的time

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

基于MongoDB实现文件的分布式存储

《基于MongoDB实现文件的分布式存储》分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储,需要的朋友可以参考... 目录一、引言二、GridFS 原理剖析三、Spring Boot 集成 GridFS3.1 添加依赖

Django之定时任务django-crontab的实现

《Django之定时任务django-crontab的实现》Django可以使用第三方库如django-crontab来实现定时任务的调度,本文主要介绍了Django之定时任务django-cront... 目录crontab安装django-crontab注册应用定时时间格式定时时间示例设置定时任务@符号

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组