astraea


Nameastraea JSON
Version 1.4.2 PyPI version JSON
download
home_pagehttps://github.com/synapse-rpc
SummaryA rpc framework base RabbitMQ (已实现C#,python,Golang)
upload_time2018-03-13 16:28:46
maintainer
docs_urlNone
authorxrain0610
requires_python
licenseBSD License
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## 西纳普斯 - synapse (Python Version)

### 此为系统核心交互组件,包含了事件和RPC系统
包地址
> https://pypi.python.org/pypi/astraea

git:
> git clone https://github.com/synapse-rpc/astraea.git synapse

或者使用PIP安装:
> pip install astraea

初始化方法:

```python
#使用pip安装
from synapse import Synapse
#创建一个新的对象(这里有疑问,是不是应该加括号)
server = Synapse()
#定义事件回调
server.event_callback_map = {
    "icarus.test": callback,
    "pytest.test": callback
}
#定义RPC服务方法
server.rpc_callback_map = {
    "pyt.get": pyt,
}
#设置系统名称(相同的系统中的APP才能相互调用)
server.sys_name = ""
#设置应用名称(RPC调用和事件的标识)
server.app_name = ""
#RabbitMQ 服务器地址
server.mq_host = ""
#RabbitMQ 服务器端口
server.mq_port = 5672
#RabbitMQ 服务器用户
server.mq_user = ""
#RabbitMQ 服务器密码
server.mq_pass =""
#调试模式开关 (打开后可以看到很多LOG)
server.debug = True
#是否禁用RPC客户端功能 (默认可以进行RPC请求)
server.disable_rpc_client = True
#是否禁用发送事件的机能 (默认允许发送事件)
server.disable_event_client = True
#开始服务
server.serve()
```
事件处理方法类型:
```python
callback(params, raw) 
#params 为字典,客户端请求数据
#raw 为RPC传输的数据包,一般情况不使用
#需要返回 True表示处理完成,返回False表示处理失败
```
RPC服务方法类型:
```python
pyt(params, raw) 
#params 为字典,客户端请求数据
#raw 为RPC传输的数据包,一般情况不使用
#需要返回 一个key为string的字典
```
发送RPC请求:
```python
#第一个参数为要调用组件的名称
#第二个参数为要调用组件的方法
#第三个参数为一个key为string的字典 要发送的数据
server.send_rpc("icarus","echo",{"ceshi":"我是中文","test":"from python"})
```
发送事件请求:
```python
#第一个参数为要触发的事件名称 
#第二个参数为 事件的相关数据 一个key为string的字典
server.send_event("test",{"ceshi":"我是中文","test":"from python"})
```
上面发送了一个名为 app_name.test 的事件, 只需要在监听器中注册 app_name.test 即可在产生事件时被通知
            

Raw data

            {
    "maintainer": "", 
    "docs_url": null, 
    "requires_python": "", 
    "maintainer_email": "", 
    "cheesecake_code_kwalitee_id": null, 
    "keywords": "", 
    "upload_time": "2018-03-13 16:28:46", 
    "author": "xrain0610", 
    "home_page": "https://github.com/synapse-rpc", 
    "download_url": "https://pypi.python.org/packages/e0/f9/0b7c15df85d8675e96c7496966c65bb32f61fef4080938a3a1a635d73304/astraea-1.4.2.tar.gz", 
    "platform": "all", 
    "version": "1.4.2", 
    "cheesecake_documentation_id": null, 
    "description": "## \u897f\u7eb3\u666e\u65af - synapse (Python Version)\n\n### \u6b64\u4e3a\u7cfb\u7edf\u6838\u5fc3\u4ea4\u4e92\u7ec4\u4ef6,\u5305\u542b\u4e86\u4e8b\u4ef6\u548cRPC\u7cfb\u7edf\n\u5305\u5730\u5740\n> https://pypi.python.org/pypi/astraea\n\ngit:\n> git clone https://github.com/synapse-rpc/astraea.git synapse\n\n\u6216\u8005\u4f7f\u7528PIP\u5b89\u88c5\uff1a\n> pip install astraea\n\n\u521d\u59cb\u5316\u65b9\u6cd5:\n\n```python\n#\u4f7f\u7528pip\u5b89\u88c5\nfrom synapse import Synapse\n#\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u5bf9\u8c61(\u8fd9\u91cc\u6709\u7591\u95ee,\u662f\u4e0d\u662f\u5e94\u8be5\u52a0\u62ec\u53f7)\nserver = Synapse()\n#\u5b9a\u4e49\u4e8b\u4ef6\u56de\u8c03\nserver.event_callback_map = {\n    \"icarus.test\": callback,\n    \"pytest.test\": callback\n}\n#\u5b9a\u4e49RPC\u670d\u52a1\u65b9\u6cd5\nserver.rpc_callback_map = {\n    \"pyt.get\": pyt,\n}\n#\u8bbe\u7f6e\u7cfb\u7edf\u540d\u79f0(\u76f8\u540c\u7684\u7cfb\u7edf\u4e2d\u7684APP\u624d\u80fd\u76f8\u4e92\u8c03\u7528)\nserver.sys_name = \"\"\n#\u8bbe\u7f6e\u5e94\u7528\u540d\u79f0(RPC\u8c03\u7528\u548c\u4e8b\u4ef6\u7684\u6807\u8bc6)\nserver.app_name = \"\"\n#RabbitMQ \u670d\u52a1\u5668\u5730\u5740\nserver.mq_host = \"\"\n#RabbitMQ \u670d\u52a1\u5668\u7aef\u53e3\nserver.mq_port = 5672\n#RabbitMQ \u670d\u52a1\u5668\u7528\u6237\nserver.mq_user = \"\"\n#RabbitMQ \u670d\u52a1\u5668\u5bc6\u7801\nserver.mq_pass =\"\"\n#\u8c03\u8bd5\u6a21\u5f0f\u5f00\u5173 (\u6253\u5f00\u540e\u53ef\u4ee5\u770b\u5230\u5f88\u591aLOG)\nserver.debug = True\n#\u662f\u5426\u7981\u7528RPC\u5ba2\u6237\u7aef\u529f\u80fd (\u9ed8\u8ba4\u53ef\u4ee5\u8fdb\u884cRPC\u8bf7\u6c42)\nserver.disable_rpc_client = True\n#\u662f\u5426\u7981\u7528\u53d1\u9001\u4e8b\u4ef6\u7684\u673a\u80fd (\u9ed8\u8ba4\u5141\u8bb8\u53d1\u9001\u4e8b\u4ef6)\nserver.disable_event_client = True\n#\u5f00\u59cb\u670d\u52a1\nserver.serve()\n```\n\u4e8b\u4ef6\u5904\u7406\u65b9\u6cd5\u7c7b\u578b:\n```python\ncallback(params, raw) \n#params \u4e3a\u5b57\u5178,\u5ba2\u6237\u7aef\u8bf7\u6c42\u6570\u636e\n#raw \u4e3aRPC\u4f20\u8f93\u7684\u6570\u636e\u5305,\u4e00\u822c\u60c5\u51b5\u4e0d\u4f7f\u7528\n#\u9700\u8981\u8fd4\u56de True\u8868\u793a\u5904\u7406\u5b8c\u6210,\u8fd4\u56deFalse\u8868\u793a\u5904\u7406\u5931\u8d25\n```\nRPC\u670d\u52a1\u65b9\u6cd5\u7c7b\u578b:\n```python\npyt(params, raw) \n#params \u4e3a\u5b57\u5178,\u5ba2\u6237\u7aef\u8bf7\u6c42\u6570\u636e\n#raw \u4e3aRPC\u4f20\u8f93\u7684\u6570\u636e\u5305,\u4e00\u822c\u60c5\u51b5\u4e0d\u4f7f\u7528\n#\u9700\u8981\u8fd4\u56de \u4e00\u4e2akey\u4e3astring\u7684\u5b57\u5178\n```\n\u53d1\u9001RPC\u8bf7\u6c42:\n```python\n#\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e3a\u8981\u8c03\u7528\u7ec4\u4ef6\u7684\u540d\u79f0\n#\u7b2c\u4e8c\u4e2a\u53c2\u6570\u4e3a\u8981\u8c03\u7528\u7ec4\u4ef6\u7684\u65b9\u6cd5\n#\u7b2c\u4e09\u4e2a\u53c2\u6570\u4e3a\u4e00\u4e2akey\u4e3astring\u7684\u5b57\u5178 \u8981\u53d1\u9001\u7684\u6570\u636e\nserver.send_rpc(\"icarus\",\"echo\",{\"ceshi\":\"\u6211\u662f\u4e2d\u6587\",\"test\":\"from python\"})\n```\n\u53d1\u9001\u4e8b\u4ef6\u8bf7\u6c42:\n```python\n#\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e3a\u8981\u89e6\u53d1\u7684\u4e8b\u4ef6\u540d\u79f0 \n#\u7b2c\u4e8c\u4e2a\u53c2\u6570\u4e3a \u4e8b\u4ef6\u7684\u76f8\u5173\u6570\u636e \u4e00\u4e2akey\u4e3astring\u7684\u5b57\u5178\nserver.send_event(\"test\",{\"ceshi\":\"\u6211\u662f\u4e2d\u6587\",\"test\":\"from python\"})\n```\n\u4e0a\u9762\u53d1\u9001\u4e86\u4e00\u4e2a\u540d\u4e3a app_name.test \u7684\u4e8b\u4ef6, \u53ea\u9700\u8981\u5728\u76d1\u542c\u5668\u4e2d\u6ce8\u518c app_name.test \u5373\u53ef\u5728\u4ea7\u751f\u4e8b\u4ef6\u65f6\u88ab\u901a\u77e5", 
    "lcname": "astraea", 
    "bugtrack_url": "", 
    "github": false, 
    "name": "astraea", 
    "license": "BSD License", 
    "summary": "A rpc framework base RabbitMQ (\u5df2\u5b9e\u73b0C#,python,Golang)", 
    "split_keywords": [], 
    "author_email": "xrain@simcu.com", 
    "urls": [
        {
            "has_sig": false, 
            "upload_time": "2018-03-13T16:28:46", 
            "comment_text": "", 
            "python_version": "source", 
            "url": "https://pypi.python.org/packages/e0/f9/0b7c15df85d8675e96c7496966c65bb32f61fef4080938a3a1a635d73304/astraea-1.4.2.tar.gz", 
            "md5_digest": "bada42199e8899923acb675b0dfb9617", 
            "downloads": 0, 
            "filename": "astraea-1.4.2.tar.gz", 
            "packagetype": "sdist", 
            "path": "e0/f9/0b7c15df85d8675e96c7496966c65bb32f61fef4080938a3a1a635d73304/astraea-1.4.2.tar.gz", 
            "size": 2572
        }
    ], 
    "_id": null, 
    "cheesecake_installability_id": null
}