基于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的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 76427b80efb2a83096d334aa86971e77b17bc38f6b851d1212a053e57dbfa0fc |
|
MD5 | c48a7ec24206816ed6b60d1137e75161 |
|
BLAKE2b-256 | 4028217ca1977b8d90544ebb5b9d267c78dd0d4bd3f642e37729718ad0f2695d |