RPC between distributed workers
Project description
A distributed RPC solution based on ØMQ and gevent. Follow the features:
A worker can return, yield, raise any picklable object to the remote customer.
A customer can invoke to any remote worker in the worker cluster.
A customer can invoke to all remote workers in the worker cluster.
Example
Server-side
The address is 192.168.0.41. The worker will listen at 24600.
import zmq.green as zmq
import zeronimo
class Application(object):
def rycbar123(self):
for word in 'run, you clever boy; and remember.'.split():
yield word
ctx = zmq.Context()
# make worker
worker_sock = ctx.socket(zmq.PULL)
worker_sock.bind('tcp://*:24600')
worker = zeronimo.Worker(Application(), [worker_sock])
# run worker forever
worker.run()
Client-side
The address is 192.168.0.42. The reply collector will listen at 24601.
import zmq.green as zmq
import zeronimo
ctx = zmq.Context()
# make remote result collector
collector_sock = ctx.socket(zmq.PULL)
collector_sock.bind('tcp://*:24601)
collector = zeronimo.Collector(collector_sock, 'tcp://192.168.0.42:24601')
# make customer
customer_sock = ctx.socket(zmq.PUSH)
customer_sock.connect('tcp://192.168.0.41:24600')
customer = zeronimo.Customer(customer_sock, collector)
# rpc
remote_result = customer.emit('rycbar123')
for line in remote_result.get():
print line
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
zeronimo-0.4.0.tar.gz
(21.6 kB
view details)
File details
Details for the file zeronimo-0.4.0.tar.gz
.
File metadata
- Download URL: zeronimo-0.4.0.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c8c1b3fca85051a2f07cbe3e6a5e39e00fb159eae7be7d66efb18c89b0e4d7a |
|
MD5 | 2a9c896b64ed9bdba605c9124aeb940a |
|
BLAKE2b-256 | 36d10fd9d70913c9f4f33d94eaf7885ced1796c3f4f421316a7be550a3a4f85d |