xdas.processing.ZMQSubscriber#

class xdas.processing.ZMQSubscriber(address)[source]#

A class for subscribing to DataArray chunks over ZeroMQ.

Parameters:

address (str) – The address to connect the subscriber to.

submit(da)#

Send a DataArray over ZeroMQ.

Examples

>>> import threading
>>> import xdas as xd
>>> from xdas.processing import ZMQSubscriber

First we generate some data and split it into packets

>>> da = xd.synthetics.dummy()
>>> packets = xd.split(da, 10)

We then publish the packets asynchronously

>>> address = f"tcp://localhost:{xd.io.get_free_port()}"
>>> publisher = ZMQPublisher(address)
>>> def publish():
...     for packet in packets:
...         publisher.submit(packet)
>>> threading.Thread(target=publish).start()

Now let’s receive the packets

>>> subscriber = ZMQSubscriber(address)
>>> packets = []
>>> for n, da in enumerate(subscriber, start=1):
...     packets.append(da)
...     if n == 10:
...         break
>>> da = xd.concat(packets)
>>> assert da.equals(da)
__init__(address)[source]#

Methods

__init__(address)