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)
Methods
__init__(address)