Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Celery 分布式框架 学习

Celery 分布式框架 学习

作者头像
lpe234
发布于 2020-07-28 07:22:55
发布于 2020-07-28 07:22:55
28100
代码可运行
举报
文章被收录于专栏:若是烟花若是烟花
运行总次数:0
代码可运行

一、概要

官网: http://www.celeryproject.org/

官方文档: http://docs.celeryproject.org/en/latest/index.html

一个AMQP: http://abhishek-tiwari.com/post/amqp-rabbitmq-and-celery-a-visual-guide-for-dummies

其他的文章,一般都太老了。还是直接看官方文档吧。

有问题还是直接去Google或直接去StackOverflow吧,百度真心不靠谱!!!


二、简单DEMO

tasks.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8

from celery import Celery

# backend = 'db+mysql://root:@localhost/celery'
backend = 'amqp'
broker = 'amqp://guest@localhost//'
app = Celery('tasks', backend=backend, broker=broker)


@app.task
def add(x, y):
    return x + y

添加参数直接以 worker 形式运行即可,便形成了一个 worker。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# celery -A tasks worker -l debug
# debug 调试模式,会输出更多调试信息
celery -A tasks worker -l info

#### 此时,在windows平台(win8 x64)出现问题

可以打开多个终端,执行上述命令。已形成 “分布式”多个 worker。

然后,添加异步任务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\celery_project\cel>python
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> from tasks import add
>>> x = add.delay(3,9)
>>> x.status
'PENDING'
>>> x.ready()
False
>>>

#### 就在此时,很容易看到, worker 终端,显示任务已经完成,但是 主机 status状态:PENDING ready状态:False

然后各种百度,更换 backend -> amqp -> db+mysql 依旧无效,然后 在 StackOverflow 上找到了答案,吼吼~~~ 好兴奋的感觉

Problem: Celery 'Getting Started' not able to retrieve results; always pending

链接: https://stackoverflow.com/questions/25495613/celery-getting-started-not-able-to-retrieve-results-always-pending

解决方法就是,添加运行参数: celery -A tasks worker -l debug --pool=solo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\celery_project\cel>python
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> from tasks import add
>>> x = add.delay(3,6)
>>> x.status
'SUCCESS'
>>> x.ready()
True
>>> x.result
9

至此,Celery调度,基本使用基本可以,欢迎留言交流探讨~~~~好吧,其实欢迎指教~~~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python测试开发django-157.celery异步与redis环境搭建
Celery 是一个分布式队列的管理工具, 可以用 Celery 提供的接口快速实现并管理一个分布式的任务队列. 使用于生产环境的消息代理有 RabbitMQ 和 Redis,还可以使用数据库,本篇介绍redis使用
上海-悠悠
2021/10/20
5670
Celery的安装和使用
Celery是一个分布式任务队列工具,是一个异步的任务队列基于分布式消息传递。更多介绍可以参考 官网
the5fire
2019/02/28
1.4K0
【译】Celery文档1:First Steps with Celery——安装和配置Celery
Celery需要一个方法来发送和接受消息,这个方法被称为消息代理(message broker)。Celery支持多种消息代理,如RabbitMQ、Redis等。
一只大鸽子
2024/04/30
4520
【译】Celery文档1:First Steps with Celery——安装和配置Celery
分布式任务管理系统 Celery 之一
开发自动化管理平台的过程中,有执行时间较长的任务比如安装基础软件,备份恢复;有定时执行的任务比如定期收集元数据,检查慢日志数量等等,我们可以自己开发一套任务系统,当然也可以依赖Celery 实现上述功能。
用户1278550
2018/08/01
1.6K0
分布式任务管理系统 Celery 之一
爬虫架构|Celery+RabbitMQ快速入门(二)
在上一篇文章爬虫架构|Celery+RabbitMQ快速入门(一)中简单介绍了Celery和RabbitMQ的使用以及它们之间的合作流程。本篇文章将继续讲解它们是如何配合工作的。 一、Celery介绍和基本使用 Celery是一个基于Python开发的分布式异步消息任务队列,它简单、灵活、可靠,是一个专注于实时处理的任务队列,同时也支持任务调度。通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用Celery。举几个适用场景: 1)可以在 Request-Response
黄小怪
2018/05/21
1.4K0
分布式任务管理系统 Celery 之二
前面一篇文章分布式任务管理系统 Celery 之一介绍了分布式任务调度队列Celery的框架以及原理,使用的例子比较简单,对实际的使用场景没有意义。本系列文章会以工程实践为例进行深入学习Celery,了解在具体工程中Celery的配置结构,调用方法,定时任务,任务队列,多机器使用Celery处理任务 。
用户1278550
2018/08/09
9700
[源码解析] 并行分布式框架 Celery 之 worker 启动 (1)
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。Celery 是调用其Worker 组件来完成具体任务处理。
罗西的思考
2021/04/01
1.1K0
celery + rabbitmq初步
执行完毕后结果存储在redis中,查看redis中的数据,发现存在一个string类型的键值对:
菲宇
2019/06/12
2K0
django通过celery添加异步任务
大家在做web项目的时候经常会遇到一些耗时的操作, 比如: 发送邮件、发送短信、生成pdf。这些操作在某些情况下需要立即返回结果给用户,但是可以在后台异步执行。
零式的天空
2022/03/23
6160
[源码解析] 并行分布式任务队列 Celery 之 Task是什么
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。本文目的是看看 Celery 的 task 究竟是什么,以及 如果我们想从无到有实现一个 task 机制,有哪些地方需要注意,应该如何处理。
罗西的思考
2021/04/12
8550
python测试开发django-158.celery 学习与使用
Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具。它是一个任务队列,专注于实时处理,同时还支持任务调度。 可以使用的场景如:
上海-悠悠
2021/10/20
4720
【译】Celery文档2:Next Steps——在项目中使用Celery
然后我们定义了一些函数,并注册为任务@app.task: proj/tasks.py
一只大鸽子
2024/05/10
1550
【译】Celery文档2:Next Steps——在项目中使用Celery
[源码解析] 并行分布式框架 Celery 之 worker 启动 (2)
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。Celery 是调用其Worker 组件来完成具体任务处理。
罗西的思考
2021/04/07
1.3K0
[源码解析] 并行分布式框架 Celery 之 worker 启动 (2)
[源码解析] 并行分布式框架 Celery 之架构 (1)
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。
罗西的思考
2022/05/09
7680
python—Celery异步分布式
Celery  是一个python开发的异步分布式任务调度模块,是一个消息传输的中间件,可以理解为一个邮箱,每当应用程序调用celery的异步任务时,会向broker传递消息,然后celery的worker从中取消息
py3study
2020/01/06
5950
python—Celery异步分布式
如何构建一个分布式爬虫(理论篇)
專 欄 ❈resolvewang,Python中文社区专栏作者 Python和Go爱好者。具有较为丰富的爬虫和反爬虫经验,对web编程略知一二,对基础架构比较感兴趣❈ 前言 本系列文章计划分三个章节进行讲述,分别是理论篇、基础篇和实战篇。理论篇主要为构建分布式爬虫而储备的理论知识,基础篇会基于理论篇的知识写一个简易的分布式爬虫,实战篇则会以微博为例,教大家做一个比较完整且足够健壮的分布式微博爬虫。通过这三篇文章,希望大家能掌握如何构建一个分布式爬虫的方法;能举一反三,将celery用于除爬虫外的其它场景。
Python中文社区
2018/01/31
1.5K0
如何构建一个分布式爬虫(理论篇)
Celery的使用完成异步任务与定时任务
Celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index.html
小小咸鱼YwY
2020/06/19
9280
Django配置Celery执行异步任务和定时任务
celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上执行任务调度。采用典型的生产者-消费者模型,主要由三部分组成:
37丫37
2018/08/23
2.3K0
Django配置Celery执行异步任务和定时任务
Python项目50-Celery框架
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
4330
Python项目50-Celery框架
分布式异步任务队列神器之-Celery
最近研究了下异步任务神器-Celery,发现非常好用,可以说是高可用,假如你发出一个任务执行命令给 Celery,只要 Celery 的执行单元 (worker) 在运行,那么它一定会执行;如果执行单元 (worker) 出现故障,如断电,断网情况下,只要执行单元 (worker) 恢复运行,那么它会继续执行你已经发出的命令。这一点有很强的实用价值:假如有交易系统接到了大量交易请求,主机却挂了,但前端用户仍可以继续发交易请求,发送交易请求后,用户无需等待。待主机恢复后,已发出的交易请求可以继续执行,只不过用户收到交易确认的时间延长而已,但并不影响用户体验。
somenzz
2020/12/10
2.1K0
分布式异步任务队列神器之-Celery
推荐阅读
相关推荐
python测试开发django-157.celery异步与redis环境搭建
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验