用于编写高度可伸缩应用程序的通用python框架
pyscale的Python项目详细描述
用于编写高度可伸缩应用程序的通用python框架。
关于
典型的应用程序由几个模块组成。每个模块都有自己的 处理,在“tmp/pids”中存储一个pidfile,在“logs”中有一个日志文件。
rpc协议是在zeromq之上实现的,以便 模块间通信。模块具有可自动调整的工人数量 以便处理大量的请求。这些rpc请求将阻止 直到那个模块可用。 在http://zguide.zeromq.org/上阅读有关zeromq的更多信息
每个模块由几个gevent greenlet组成。基本模块已经 包含一些处理传入rpc请求的greenlet。你可以产卵 额外的绿色小菜可以满足你自己的需要。 有关gevent的详细信息,请访问http://www.gevent.org/
任务
您可以使用内置任务管理和调试模块。在a处键入“cake” 在项目内部时,bash会提示您查看可用的任务及其执行的操作。 你也可以定义你自己的收入。
命令
创建新项目:
$ pyscale new <name>
生成新模块:
$ pyscale generate <name>
要启动、停止、调试、查看日志和更多可用的蛋糕任务,请执行以下操作:
$ cake $ cake start $ cake stop $ cake status $ cake log $ cake console
用法
在另一个模块上执行rpc请求:
self.sock('modname').method(*args, **kwargs)
您还可以使用属性和链请求:
self.sock('modname').prop.method()
您还可以对所有可用模块发出请求:
self.multisock('*').method()
要在模块中生成另一个greenlet,请使用“job”装饰器或:
self.jobs.spawn(func)
要调试应用程序,请使用日志和控制台。
要求
- 系统依赖项:
- 零MQ
- ATD
- python依赖项:
- PYZMQ
- gevent
- gevent_zeromq
- 蛋糕
- argparse
- Jinja2
- 鼻子