跳转到主要内容

基于AMQP的worker/master模式框架

项目描述

基于AMQP的Tornado RPC库

使用场景

  • 任务队列

  • 不同CPU密集型HTTP处理程序的负载均衡

  • … 其他涉及RPC的系统

安装

pip install crew

示例

查看完整的 示例

用法

例如创建您的第一个应用,并保存为master.py

import tornado.ioloop
import tornado.gen
import tornado.web
import tornado.log
import json
import tornado.options
from crew import TimeoutError, ExpirationError
from crew.master.tornado import Client

class MainHandler(tornado.web.RequestHandler):

    @tornado.gen.coroutine
    def get(self):
        resp = yield self.settings['crew'].call(None, priority=100)
        self.write(json.dumps(resp))

cl = Client()
application = tornado.web.Application(
    [
        (r"/", MainHandler),
    ],
    crew=cl,
    autoreload=True,
    debug=True,
)

if __name__ == "__main__":
    cl.connect()
    tornado.options.parse_command_line()
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

然后创建您的第一个任务,并保存为worker.py

# encoding: utf-8
from crew.worker import run, context, Task

@Task('test')
def long_task(req):
    context.settings.counter += 1
    return {"counter": context.settings.counter}

run(
    counter=0
)

之后运行它

$ python master.py &
$ python worker.py &
$ wait

尝试测试它

$ curl https://#:8888/

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

crew-0.9.2.tar.gz (11.0 kB 查看哈希)

上传时间: 源代码

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面