python任务调度模块celery

python任务调度模块celerycelery简介Celery特点Celery工作流程图celery安装使用

python任务调度模块celery

celery简介

Celery是一个python开发的异步分布式任务调度模块。
Celery本身并不提供消息服务,使用第三方服务,也就是borker来传递任务,一般使用rabbitMQ或者Redis。

Celery特点

  • 简单:一单熟悉了celery的工作流程后,配置和使用还是比较简单的。
  • 高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务。
  • 快速:一个单进程的celery每分钟可处理上百万个任务。
  • 灵活: 几乎celery的各个组件都可以被扩展及自定制。

Celery工作流程图

这里写图片描述

celery安装使用

安装Celery模块

pip install celery

Celery的默认broker是RabbitMQ,仅需配置一行

broker_url = ‘amqp://guest:[email protected]:5672//‘

redis作为broker也可以。

安装

pip install redis

配置
broker_url配置redis数据库地址,格式为redis://:[email protected]:port/db_number。
backend配置任务结果存储位置,将保存每个任务的执行结果。

app.conf.broker_url = ‘redis://localhost:6379/0‘app.conf.result_backend = ‘redis://localhost:6379/0‘port和db_number是可选项,默认情况下端口使用6379,db_number使用0。

示例
创建一个celery application定义任务列表,新建一个celery1.py文件

from celery import Celerybroker = "redis://118.24.18.158:6379/5"backend = "redis://118.24.18.158:6379/6"app = Celery("celery1", broker=broker, backend=backend)@app.taskdef add(x, y):    return x+y

启动Celery Worker开始监听并执行任务

celery -A celery1 worker --loglevel=info

调用任务

import timefrom celery1 import addre = add.delay(10, 20)print(re)print(re.status)time.sleep(8)print(re.status)print(re.result)

原文地址:https://www.cnblogs.com/jiangshanwang/p/9146227.html

时间: 2024-11-13 03:45:59

python任务调度模块celery的相关文章

Python任务调度模块 – APScheduler(摘抄)

Python任务调度模块 – APScheduler 2015年6月11日 by debugo · 32 Comments APScheduler是一个Python定时任务框架,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.并以daemon方式运行应用.目前最新版本为3.0.x.在APScheduler中有四个组件:触发器(trigger)包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行.除了他们自己初始配置意外,触发器完

在python下比celery更加简单的异步任务队列RQ

前言: 这里介绍一个python下,比celery更加简单的异步工具,真的是很简单,当然他的功能没有celery多,复杂程度也没有celery大,文档貌似也没有celery多,但是为啥会介绍rq这个东西 因为他够简单. 当然他虽然简单,但是也是需要中间人的,也就是 Broker,这里只能是redis了. 他没有celery支持的那么多,比如 redis rabbitmq mongodb mysql之类的. 说回来,咱们用rq,就是看重他的简单. 如对celery有兴趣,可以看看我以前写过的博文.

Python任务调度模块APScheduler

目录 一.APScheduler 是什么&APScheduler四种组成部分? 1.调度器(scheduler) 2.作业存储(job store) 3.执行器(executor) 4.触发器(triggers) 4.1.date 定时调度(作业只会执行一次) 4.2.interval: 每隔一段时间执行一次 4.3.cron: 使用同linux下crontab的方式 二. How:APSched 怎么用? 安装 快速上手 任务操作 1.添加任务 2.删除任务 3.暂停&继续任务 4.修改

python异步处理celery

好久没有更新博客了,前段时间忙于毕设,之后去公司实习.近一段时间空了,整理一下之前所遇到的问题,以及解决方法. 通常当计算机运行很久的代码,需要将其放在后台进行处理,也就是需要实现异步.python中一个解决方案就是利用celery这个包. 具体的实现思路是,计算前在数据库例如mongo里面插入一个{"state":"0"}:celery将计算程序放入一个存储消息的数据库,通常可以用redis:同时,启动celery的worker,它将不断check redis里面

Python任务调度模块 – APScheduler

APScheduler是一个Python定时任务框架,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.并以daemon方式运行应用.目前最新版本为3.0.x. 在APScheduler中有四个组件: 触发器(trigger)包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行.除了他们自己初始配置意外,触发器完全是无状态的. 作业存储(job store)存储被调度的作业,默认的作业存储是简单地把作业保存在内存中,其他的作业存储

python:利用celery分布任务

Celery是一个功能完备即插即用的任务队列.它使得我们不需要考虑复杂的问题,使用非常简单.celery看起来似乎很庞大.celery适用异步处理问题,当发送邮件.或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验. celery的特点是: 简单,易于使用和维护,有丰富的文档. 高效,单个celery进程每分钟可以处理数百万个任务. 灵活,celery中几乎每个部分都可以自定义扩展. celery非常易于集成到一些web开发框架中. 任务队列

43. Python celery简介

Celery异步分布式 什么是celery? 他是一个python开发的异步分布式任务调度模块 celery本身不提供消息服务,使用第三方服务,也就是broker来传递任务,目前支持rabbitmq,redis,数据库等等. 我们使用redis 连接URL的格式为:     redis://:[email protected]:port/db_number 例如:     BROKER_URL='redis://localhost:6379/0' 过程如图示 在python里面如果用到异步分布式

python—Celery异步分布式

Celery异步分布式 Celery是一个python开发的异步分布式任务调度模块 Celery本身并不提供消息服务,使用第三方服务,也就是borker来传递任务,目前支持rebbimq,redis, 数据库等 使用redis连接url的格式为: redis://:[email protected]:port/db_number 例如: BROKER_URL = 'redis://localhost:6379/0' 1)huang.py from celery import Celery bro

python使用异步任务celery出现异常崩溃时retry重试

前言: python下的celery是啥东西大家应该有了解,是一个异步的任务框架 .话说,  我以前写过一个报警平台的项目,也需要任务的扩展成分布式,当时总是觉得 用celery不是那么太靠谱,所以就自己写了一个分布式的任务派发的系统. 今个和朋友聊起了分布式爬虫,这哥们说 任务有时候经常的崩溃,但是celery的retry的机制有些意思,最后看了下文档  ,又研究了下retry的参数,然后把自己的一些实战分享给大家. #xiaorui.cc @celery.task(bind=True,max