1 """Majordomo Protocol Client API, Python version. 3 Implements the MDP/Worker spec at http:#rfc.zeromq.org/spec:7. 5 Author: Min RK <benjaminrk@gmail.com> 6 Based on Java example by Arkadiusz Orzechowski 8 Originally from Zguide examples, generalized to use CLIENT 9 or DEALER by brett.viren@gmail.com 17 from .zhelpers
import dump, clientish_recv, clientish_send
20 """Majordomo Protocol Client API, Python version. 22 Implements the MDP/Worker spec at http:#rfc.zeromq.org/spec:7. 31 def __init__(self, broker, socket_type=zmq.ROUTER, verbose=False):
35 self.
ctx = zmq.Context()
37 logging.basicConfig(format=
"%(asctime)s %(message)s",
38 datefmt=
"%Y-%m-%d %H:%M:%S",
44 """Connect or reconnect to broker""" 53 logging.info(
"I: connecting to broker at %s...", self.
broker)
55 def send(self, service, request):
56 """Send request to broker 58 if not isinstance(request, list):
65 request = [MDP.C_CLIENT, service] + request
67 logging.warn(
"I: send request to '%s' service: ", service)
73 """Returns the reply message or None if there was no reply.""" 76 except KeyboardInterrupt:
84 logging.info(
"I: received reply:")
91 assert MDP.C_CLIENT == header
96 logging.warn(
"W: permanent error, abandoning request")
def clientish_recv(sock, args, kwds)
def clientish_send(sock, msg, args, kwds)
def send(self, service, request)
int poll(zmq_pollitem_t *items_, size_t nitems_, long timeout_=-1)
void dump(const SM &) noexcept
def reconnect_to_broker(self)
def __init__(self, broker, socket_type=zmq.ROUTER, verbose=False)