python异步分布式可伸缩队列服务
PyAsynch的Python项目详细描述
pyasynch
pyasynch是一个通过rabbitmq创建分布式python服务的包。
这些服务通过一个公共rabbitmq队列相互通信,并将服务公开为http tornado服务器
如何使用
pip install pyasynch
或
pip3 install pyasynch
或者复制git repo。
创建自定义节点
from pyasynch.node import Node
class MyNode(Node):
def mymethod(self,arg1,arg2,**kwargs):
return {'myproperty':'myvalue'}
def mysecondmethod(self,myproperty,**kwargs):
return {}
创建配置文件(例如myconfig.json)
{
"endpoint": {
"amqp": "amqp://guest:guest@127.0.0.1:5672/pyasynch",
"id": "myendpoint",
"threaded": false
}
}
创建路由文件(例如myroutes.json)
{
"routes": {
"pyasynch://myendpoint/mynode/mymethod" : ["pyasynch://myendpoint/mynode/mysecondmethod"],
}
创建main(例如main.py)运行程序并注册节点
# IMPORTS
from pyasynch.environment import Environment
env = Environment()
env.register_node('mynode',MyNode(env.endpoint))
try:
env.run()
except KeyboardInterrupt:
env.stop()
一切就绪,现在您可以运行端点服务(检查rabbitmq是否正常运行)
python3 main.py-c myconfig.json-r myroutes.json-p 8081
您可以以可伸缩的方式复制节点和端点逻辑。
然后可以执行json get或post到端点: http://127.0.0.1:8081/mynode/mymethod