python celery介绍和基本使用

08 python celery介绍和基本使用

celery分布式任务队列

RPC远程,当执行一条命令,等待远程执行结果返回客户端。

在Linux上可以在后台执行,不影响其他任务执行。(涉及到异步)

1、分布式任务运算celery

参考:https://www.cnblogs.com/alex3714/p/6351797.html

任务计划:https://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

Crontab操作系统本身任务计划

Celery也可以实现定时任务,不需要操作系统。

Rabbitmq也可以实现异步。

2、测试代码:

Celery在Windows上执行有问题,在Linux上使用。

[[email protected] testcleery]# celery -A celery_test worker -l debug 启动过程中可能需要调整环境变量。export C_FORCE_ROOT=True

[[email protected] testcleery]# export C_FORCE_ROOT=True

[[email protected] testcleery]# celery -A celery_test worker -l info

查看日志,任务模块加载成功。Celery两个模块都已加载下来。

测试celery模块。

3、测试同时启动2个worker服务。

[[email protected] testcleery]# export C_FORCE_ROOT=True

[[email protected] testcleery]# celery -A celery_test worker -l info

[[email protected] testcleery]# celery -A celery_test worker -l debug

两个worker抢任务,随机分发任务到worker。

多开几个终端进行测试,应用程序会随机选择worker。

4、来个复杂任务,按照生产情况,执行过程很长的服务

[[email protected] testcleery]# vim celery_test2.py

[[email protected] testcleery]# celery -A celery_test2 worker -l info

[email protected] testcleery]# python

>>> from celery_test2 import add,cmd

>>> t1 = cmd.delay(‘abcedef‘)

>>> t1.ready()

False

>>> t1.ready()

True

>>> t1.get()

1569491327.817837

>>>

10s任务卡住了。

当t1.ready()变成true,可以取值。

5、在项目中使用。指定项目文件。

[[email protected] testcleery]# mkdir pro

[[email protected] testcleery]# cd pro/

[[email protected] pro]# pwd

/root/testcleery/pro

[[email protected] pro]# touch __init__.py

项目目录结构和项目启动方式。

[[email protected] pro]#

生产项目编写。

[[email protected] testcleery]# vim pro/celery.py

from __future__ import absolute_import, unicode_literals

from celery import Celery  # 默认从Python绝对路径引入celery包

配置认为列表项。

启动celery项目。

[[email protected] testcleery]# celery -A pro worker -l debug

[[email protected] testcleery]# python

Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49)

[GCC 7.2.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> from pro import tasks, tasks2

>>> t1 = tasks2.cmd(‘df‘)

running cmd... df

>>> t1=tasks.xsum.delay([1,2,4,3,2])

>>> t1.get()

12

>>>

Celery跟Django结合使用的比较多。后面章节重点讲解。

Celery做定时任务。

后台启动方式,

[[email protected] testcleery]# celery multi start w1 -A pro worker -l info  启动

[[email protected] testcleery]# celery multi stop w1 -A pro worker -l info  关闭

观察到,一个worker任务有3个进程在跑。

https://www.cnblogs.com/alex3714/p/6351797.html

停止任务

celery multi stopwait w1 -A proj -l info

原文地址:https://www.cnblogs.com/sunnyyangwang/p/11636910.html

时间: 2024-10-09 23:25:56

python celery介绍和基本使用的相关文章

Celery介绍和基本使用

Celery介绍和基本使用 Celery是一个基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用celery,举几个实例场景中可用的例子: 你想对100台机器执行一条批量命令,可能会花很长时间,但你不想让你的程序等着结果返回,而是给你返回一个任务ID,你过段时间只需要拿着这个任务ID就可以拿到任务执行结果,在任务执行ing进行时,你可以继续做其他的事情. 2.你想做一个定时任务,比如每天检测一下你们所有客户到资料,

【美妙的Python之中的一个】Python简单介绍及环境搭建

美妙的Python之Python简单介绍及安装         简而言之: Python 是能你无限惊喜的语言,与众不同.             1.Python:          Python英文意思为蟒蛇,故又称为蟒蛇语言,在图标设计上有所体现,贵铎·范·罗萨姆(Guido van Rossum)于1989年创立.Python的特质,简单,优雅,健壮,继承传统编程语言的强大性与通用性,同一时候兼具简单脚本的简单性.         Python的哲学:仅仅用一种方法,最好是仅仅有一种方法

python - day01 介绍

01. python - 介绍 python - 简单介绍:  dsadasdasdashttps://www.python.org/ftp/python/

python 模块介绍 - Base16, Base32, Base64 数据编码

简介 功能:RFC 3548: Base16, Base32, Base64 数据编码.转换二进制数据为适合明文协议传输的 ASCII 序列.转换8bits 为每个字节包含 6,5 或 4bits 的有效数据,比如 SMTP, URL 的一部分或者 HTTP POST 的一部分.参考:RFC 3548.编码算法不同于 uuencode.类型:标准库相关模块:uu, binhex, uu, quopri Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法.由于 2 的 6 次方

笔记1:Python简单介绍

Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python已经成为最受欢迎的程序设计语言之一.2011年1月,它被TIOBE编程语言排行榜评为2010年度语言.Python语法简洁而清晰,具有丰富和强大的类库,常被称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起. 人们为什么使用Python? 提高开发者效率 提高软件质量 程序的可移植性 内置

Python排序介绍

Python排序介绍 本文简单记录了Python中的内建函数 sort() 和 sorted() 的使用方法,以及它们在 Python2 和 Python3 中的区别. 概述 内建函数 sort() 和 sorted() 都可以对一个List进行排序,它们的区别是,sort 对 List 本身进行排序(sorts the list in place),没有返回,而 sorted 会返回经过排序后的 list.两者的参数一样,所进行的排序都是稳定的. >>> l = [2, 4, 6, 1

day02-计算机操作系统及python基础介绍

计算机操作系统及python基础介绍 1.什么是操作系统? 操作系统是介于计算机硬件与应用程序之间 是协调,控制,管理计算机硬件资源与软件资源的控制程序 2.为何要有操作系统? 1.控制硬件 2.把对硬件复杂的操作封装成优美简单的接口(文件),供用户或者应用程序去使用 3.一套完成的计算机系统包括哪些? 应用程序 操作系统 计算机硬件 注:我们以后开发的都是应用程序-应用程序无法直接操作硬件,但凡要操作硬件,都是调用操作系统的接口 4.机器语言:直接用二进制操作硬件, 优点:运行速度快 缺点:开

Python 爬虫介绍

1.Python 爬虫介绍 一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网页解析器.应用程序(爬取的有价值数据). 调度器:相当于一台电脑的CPU,主要负责调度URL管理器.下载器.解析器之间的协调工作. URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式,通过内存.数据

【Python celery】 -- 2019-08-08 18:03:28

目录 原文: http://106.13.73.98/__/156/ 安装:pip install celery celery 是基于 Python 实现的模块,用于执行异步定时周期任务. celery 组成结构: 用户任务 app: 用于生成任务 管道 broker 与 backend:前者用于存放任务,后者用于存放任务执行结果 员工 worker:负责执行任务 @(Python celery) 简单示例 员工文件(workers.py): import time from celery im