文档章节

Tornado Celery Redis实现异步

苏格兰雨季
 苏格兰雨季
发布于 2014/11/19 18:04
字数 242
阅读 572
收藏 0

Celery中两个基本的概念:Broker、Backend

    Broker :其实就是一开始说的 消息队列 ,用来发送和接受消息。

    Broker有几个方案可供选择:RabbitMQ,Redis,数据库等

    Backend : 作用是保存结果和状态,可以是Database backend,也可以是Cache backend

    Backend有几个方案可供选择:http://docs.celeryproject.org/en/latest/configuration.html#celery-result-backend

安装:

pip install celery
pip install tornado-redis
yum install redis

示例:

  tasks.py

from time import sleep
from celery import Celery

backend = 'redis://127.0.0.1:6379/0'
broker = 'redis://127.0.0.1:6379/1'

app = Celery('tasks', backend=backend, broker=broker)

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

运行服务:

celery -A tasks worker --loglevel=info

测试:

>>> from tasks import add
>>> r = add.delay(4, 4)
>>> r.ready() # 10s内执行,会输出False,因为add中sleep了10s,10s之后返回True
>>>False
>>> r.status #任务状态
'PENDING'
>>> r.result  # 输出你的hostname
>>>8
>>> r.status
'SUCCESS'

Tronado:

from concurrent.futures import ThreadPoolExecutor

class SleepHandler(tornado.web.RequestHandler):
    executor = ThreadPoolExecutor(2)
    @tornado.web.asynchronous
    @tornado.gen.coroutine
    def get(self):
        res = yield self.sleep(10,10)
        self.finish()

    @run_on_executor
    def sleep(x,y):
        time.sleep(5)
        return x+y


© 著作权归作者所有

共有 人打赏支持
苏格兰雨季
粉丝 1
博文 15
码字总数 2054
作品 0
东城
运维
私信 提问
tornado的异步库汇总- redis,mongo,celery,sockjs等

brukva -- redis异步库 https://github.com/kmerenkov/brukva toredis -- redis异步库 https://github.com/mrjoes/toredis/ tornado-redis -- redis异步库 https://github.com/leporo/tornad......

flyking
2014/02/26
0
0
分布式异步队列系统--thorns

thorns 是一个 Python 开发的分布式异步队列系统。 运行流程 启动redis内存服务器,作为队列存储数据库使用 配置芹菜(celery)运行环境,并连接redis队列内存,读取执行任务,并返回结果存储到...

匿名
2017/03/12
133
0
tornado 异步搭配的几个工具

https://github.com/leporo/tornado-redishttps://github.com/leporo/tornado-redis https://github.com/mher/tornado-celeryhttps://github.com/mher/tornado-celery http://www.tuicool.co......

MtrS
2015/06/05
0
0
tornado线程阻塞的解决

前言 也许有同学很迷惑:tornado不是标榜异步非阻塞解决10K问题的嘛?但是我却发现不是torando不好,而是你用错了. 比如最近发现一个事情:某网站打开页面很慢,服务器cpu/内存都正常.网络状态也...

单蛙
2016/06/17
272
0
使用tornado让你的请求异步非阻塞

前言 也许有同学很迷惑:tornado不是标榜异步非阻塞解决10K问题的嘛?但是我却发现不是torando不好,而是你用错了.比如最近发现一个事情:某网站打开页面很慢,服务器cpu/内存都正常.网络状态也良...

jack_cheng
2014/02/26
0
1

没有更多内容

加载失败,请刷新页面

加载更多

WEB 开发总结

事务处理 事务的4个基本特征 1.Atomic(原子性),事务中包含的操作被看做是一个整体的业务单元,这个业务单元中的操作要么全部成功,要么全部失败,不会出现部分成功,部分失败的场景。 2....

北漂的我
9分钟前
0
0
thinkphp5 利用七牛云 将amr格式语音文件转为mp3

$card_id 是我的本地的文件 将问价名字的后缀名去掉注意access_token的有效期public function ceshi1($card_id){ $mediaid = substr($card_id, 0, -4); $accessKey = ...

小小小壮
12分钟前
0
0
数据区域之堆栈

java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域, 这些区域都有各自的用途,创建和销毁时间 图: 程序计数器是一个较小的内存空间,它的作用可以看做是当前...

恋码之子
13分钟前
0
0
新的一年,来看看大数据与AI的未来展望

本文由云+社区发表 作者:堵俊平 在数据爆炸与智能革命的新时代,新的平台与应用层出不穷,开源项目推动了前沿技术和业界生态快速发展。本次分享将以技术和生态两大视角来看大数据和人工智能...

腾讯云加社区
14分钟前
1
0
死磕源码系列(ReentrantLock)

前言 在高并发领域,ReentrantLock有着广泛的用处,防止多线程带来的并发问题 对于源码,很多人和我一开始一样都觉得非常神秘 这次我将对ReentrantLock进行全方面的揭秘 核心 AbstractQueued...

石日天
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部