Пример #1
0
            try:
                self.p.terminate()  # sends a SIGTERM
                self.wait()
            except OSError:
                pass
            self.stopped.set()

        if not self.stopped.is_set():
            gevent.spawn(shutdown)
        return self.stopped


# ZMQ
###############################################################################

if not zmq.zmq_version().startswith('3.2'):
    raise Exception(
        'zmq version out of sync, aborting to not annihilate all services')

BOTH = 3
SEND = 2
RECV = 1


class Base(object):
    def __init__(self, port, host=None, method=None, pool=None, name='', **kw):
        self.stopped = False

        socket_type = self.__zmq_socket_type__
        if not method:
            method = self.__zmq_method__
Пример #2
0
 def __init__(self, ctx, pipe, outbox, *args, **kwargs):
     self._ctx = ctx                             #... until we use zbeacon actor
     self._pipe = pipe                           # We send command replies and signals to the pipe
                                                 # Pipe back to application
     self.outbox = outbox                        # Outbox back to application
     self._terminated = False                    # API shut us down
     self._verbose = False                       # Log all traffic (logging module?)
     self.beacon_interface = ''                  # Beacon interface
     self.beacon_port = ZRE_DISCOVERY_PORT       # Beacon port number
     self.interval = 0                           # Beacon interval 0=default
     self.beacon = None                          # Beacon actor
     self.beacon_socket = None                   # Beacon socket for polling
     self.poller = zmq.Poller()                  # Socket poller
     self.identity = uuid.uuid4()                # Our UUID as object
     self.bound = False
     self.inbox = ctx.socket(zmq.ROUTER)         # Our inbox socket (ROUTER)
     try:
         self.inbox.setsockopt(zmq.ROUTER_HANDOVER, 1)
     except AttributeError as e:
         logging.warning("can't set ROUTER_HANDOVER, needs zmq version >=4.1 but installed is {0}".format(zmq.zmq_version()))
     self.poller.register(self._pipe, zmq.POLLIN)
     self.name = str(self.identity)[:6]          # Our public name (default=first 6 uuid chars)
     self.endpoint = ""                          # Our public endpoint
     self.port = 0                               # Our inbox port, if any
     self.status = 0                             # Our own change counter
     self.peers = {}                             # Hash of known peers, fast lookup
     self.peer_groups = {}                       # Groups that our peers are in
     self.own_groups = {}                        # Groups that we are in
     self.headers = {}                           # Our header values
     # TODO: gossip stuff
     #self.start()
     self.run()
Пример #3
0
def pytest_report_header(config, startdir):
    versions = (zmq.zmq_version(), zmq.__version__)
    print 'zmq: zmq-%s, pyzmq-%s' % versions
Пример #4
0
        def shutdown():
            try:
                self.p.terminate() # sends a SIGTERM
                self.wait()
            except OSError:
                pass
            self.stopped.set()
        if not self.stopped.is_set():
            gevent.spawn(shutdown)
        return self.stopped


# ZMQ
###############################################################################

if not zmq.zmq_version().startswith('3.2'):
    raise Exception(
        'zmq version out of sync, aborting to not annihilate all services')


BOTH=3
SEND=2
RECV=1


class Base(object):
    def __init__(self,
            port,
            host=None,
            method=None,
            pool=None,