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
Metadata
Release files for zeronimo 0.7.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zeronimo-0.7.2.tar.gz | 25.6 kB | Details |
Release files / zeronimo-0.7.2.tar.gz
| Download URL | zeronimo-0.7.2.tar.gz |
|---|---|
| Size | 25.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3bdcd614e596403616c20360ef886af640226180dd957f805b7ce195b3d9e7dd
|
|
BLAKE2b-256 checksum How to use checksums |
d50613da8bf13216fafba63dec3fdbb10932007fa609bffa6ad594069a487c86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |