Skip to main content

A wrapper config for mprpc

Project description

mprpc_config

这是一个 mprpc 二次封装的包。

安装

pip install mprpc_config

用法

构建一个如下的目录结构

  • config.py 包含RPC配置属性(任意命名)

    INSTALLED_APP 必填参数,list 类型,将每一个包含 RPC 接口的模块名放进去

  • app_module_name RPC 接口模块(任意命名,可有多个)

    • implement.py 接口模块(任意命名,可有多个),里面包含 rpc 方法装饰的接口函数
  • server.py RPC 服务器

    1. 初始化 mprpc_config 的 Configration 类,将 config.py 的模块名 config 作为字符串传入
    2. 导入 mprpc_config.rpc_server 的 RPCServer 和 StreamServer,启动 RPC 服务器
    3. 使用 bind_class 方法将初始化后的所有 RPC 接口绑定给 RPCServer
    4. 使用 StreamServer 启动 RPC 服务器
  • client.py RPC 客户端(测试用,实际可分离)

    客户端启动方式可参考 mprpc

  • rpc_config RPC 服务配置模块,

像 Celery 一样使用。定义一个 RPC 接口只需在接口上加一个 @rpc 方法即可。

示例

示例代码在 example 目录

server.py

from mprpc_config.rpc_server import RPCServer, StreamServer
from mprpc_config import rpc_config


if __name__ == '__main__':
    print('-------start server--------')
    config = rpc_config.Configuration("config")
    config.bind_class(RPCServer)
    server = StreamServer(('127.0.0.1', 6000), RPCServer)
    server.serve_forever(stop_timeout=10)

client.py

from mprpc_config.rpc_client import RPCClient, RPCPoolClient
from mprpc_config.rpc_client import RPCPool

print('---------- client ----------')
client = RPCClient('127.0.0.1', 6000)
print('2 add 4: ', client.call('add', 2, 4))
print('2 plus 4: ', client.call('plus', 2, 4))
print('2 minus 4: ', client.call('minus', 2, 4))
print('---------- done ----------')

print('---------- client pool ----------')
client_pool = RPCPool(RPCPoolClient, dict(host='127.0.0.1', port=6000))
with client_pool.connection() as client:
    print('2 add 4: ', client.call('add', 2, 4))
    print('2 plus 4: ', client.call('plus', 2, 4))
    print('2 minus 4: ', client.call('minus', 2, 4))
print('---------- done ----------')

启动 server 和 client

$ python server.py

---------- server ----------

$ python client.py

---------- client ----------
2 add 4:  6
2 plus 4:  8
2 minus 4:  -2
---------- done ----------
---------- client pool ----------
2 add 4:  6
2 plus 4:  8
2 minus 4:  -2
---------- done ----------

Project details


Release history Release notifications

This version

0.0.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mprpc-config, version 0.0.3
Filename, size & hash File type Python version Upload date
mprpc_config-0.0.3-py3-none-any.whl (5.1 kB) View hashes Wheel py3
mprpc_config-0.0.3.tar.gz (3.4 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page