Zmq: Difference between revisions
From charlesreid1
No edit summary |
No edit summary |
||
| Line 4: | Line 4: | ||
Documentation: https://pyzmq.readthedocs.io/ | Documentation: https://pyzmq.readthedocs.io/ | ||
==Pair Model: Simple Client and Server== | |||
The following two files, pairclient.py and pairserver.py, illustrate the simplest possile pair model for zmq. | |||
'''pairclient.py:''' | |||
<pre> | |||
import zmq | |||
import random | |||
import sys | |||
import time | |||
""" | |||
ZMQ Pair Client | |||
This generates test messages every half second, | |||
faster than the server will print/process the | |||
messages. This just illustrates that ZMQ will | |||
store messages in a queue as they come in, and | |||
will not throw messages away. | |||
""" | |||
port = "5556" | |||
context = zmq.Context() | |||
socket = context.socket(zmq.PAIR) | |||
socket.connect("tcp://localhost:%s" % port) | |||
i = 0 | |||
while True: | |||
i += 1 | |||
socket.send_string("ping %d"%(i)) | |||
time.sleep(0.5) | |||
</pre> | |||
'''pairserver.py:''' | |||
<pre> | |||
import zmq | |||
import random | |||
import sys | |||
import time | |||
""" | |||
ZMQ Pair Server | |||
This accepts messages from a ZMQ message queue | |||
and prints them at a rate of two per five seconds. | |||
This is slower than the client generates messages. | |||
Thils illustrates the queue behavior of ZMQ. | |||
""" | |||
port = "5556" | |||
context = zmq.Context() | |||
socket = context.socket(zmq.PAIR) | |||
socket.bind("tcp://*:%s" % port) | |||
while True: | |||
msg = socket.recv() | |||
print(msg) | |||
msg = socket.recv() | |||
print(msg) | |||
time.sleep(5) | |||
Revision as of 11:38, 16 February 2018
Zmq (abbreviation for Zero MQ) is messaging queue software.
Messaging queue software follows the pub/sub (publisher/subscriber) architecture. This involves creating asychronous messaging pipelines. Agents that are creating events can publish to a pipeline, while agents that are processing events can subscribe to a pipeline.
Documentation: https://pyzmq.readthedocs.io/
Pair Model: Simple Client and Server
The following two files, pairclient.py and pairserver.py, illustrate the simplest possile pair model for zmq.
pairclient.py:
import zmq
import random
import sys
import time
"""
ZMQ Pair Client
This generates test messages every half second,
faster than the server will print/process the
messages. This just illustrates that ZMQ will
store messages in a queue as they come in, and
will not throw messages away.
"""
port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.connect("tcp://localhost:%s" % port)
i = 0
while True:
i += 1
socket.send_string("ping %d"%(i))
time.sleep(0.5)
pairserver.py:
import zmq
import random
import sys
import time
"""
ZMQ Pair Server
This accepts messages from a ZMQ message queue
and prints them at a rate of two per five seconds.
This is slower than the client generates messages.
Thils illustrates the queue behavior of ZMQ.
"""
port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.bind("tcp://*:%s" % port)
while True:
msg = socket.recv()
print(msg)
msg = socket.recv()
print(msg)
time.sleep(5)