基于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 |