ezrpc

Easy to use ZeroMQ based RPC library


License
Apache-2.0
Install
pip install ezrpc==0.1.0

Documentation

ezrpc

Easy to use ZeroMQ based RPC library.

https://pypip.in/v/ezrpc/badge.png https://pypip.in/d/ezrpc/badge.png

Install

pip install ezrpc

Quickstart

Step 1

Create a Server

# server.py
from ezrpc import Server

# By default, the server binds to all available interfaces
s = Server(server_port=5000, client_port=5001)
s.start()

Run this with:

python server.py

Step 2

Create a Worker

# worker.py
from ezrpc import Registry, ServerWorker
registry = Registry()

@registry.method
def add(a, b):
        return a + b

@registry.method
def multiply(a, b):
        return a * b

# Point the worker to the Server's IP
w = ServerWorker(sys.argv[1], registry, "tcp://127.0.0.1:5000")
w.run()

Run as many workers as your server can handle:

python worker.py worker1
python worker.py worker2
python worker.py worker3

Workers are elastic, i.e. you can start and stop them at will and clients will continue to be served.

Step 3

Create a Client

# client.py
from ezrpc import Client

# Point the client to the Server's IP
# timeout (millis) is optional, default is 5 seconds
c = Client('tcp://127.0.0.1:5001', timeout=1000)

for i in range(1,11):
        res = c.ask('add', i, 1)
        print 'Response: %s' % res

c._disconnect()

Run the client

python client.py