asyncio¶
Module: zmq.asyncio¶
AsyncIO support for zmq
Requires asyncio and Python 3.
New in version 15.0.
As of 15.0, pyzmq now supports asyncio, via zmq.asyncio.
When imported from this module, blocking methods such as
zmq.asyncio.Socket.recv_multipart(), zmq.asyncio.Socket.poll(),
and zmq.asyncio.Poller.poll() return Future s.
It also provides a zmq.asyncio.ZMQEventLoop.
import asyncio
import zmq
import zmq.asyncio
ctx = zmq.asyncio.Context()
loop = zmq.asyncio.ZMQEventLoop()
asyncio.set_event_loop(loop)
@asyncio.coroutine
def recv_and_process():
sock = ctx.socket(zmq.PULL)
sock.bind(url)
msg = yield from sock.recv_multipart() # waits for msg to be ready
reply = yield from async_process(msg)
yield from sock.send_multipart(reply)
loop.run_until_complete(recv_and_process())
Classes¶
ZMQEventLoop¶
An asyncio event loop using zmq_poll for zmq socket support.
-
class
zmq.asyncio.ZMQEventLoop(selector=None)¶ AsyncIO eventloop using zmq_poll
Context¶
Context class that creates Future-returning sockets. See zmq.Context for more info.
-
class
zmq.asyncio.Context(io_threads=1, **kwargs) Context for creating asyncio-compatible Sockets
Socket¶
Socket subclass that returns asyncio.Future s from blocking methods,
for use in coroutines and async applications.
See also
zmq.Socket for the inherited API.
-
class
zmq.asyncio.Socket(context, socket_type, io_loop=None) Socket returning asyncio Futures for send/recv/poll methods.
-
recv(flags=0, copy=True, track=False) Receive a single zmq frame.
Returns a Future, whose result will be the received frame.
Recommend using recv_multipart instead.
-
recv_multipart(flags=0, copy=True, track=False) Receive a complete multipart zmq message.
Returns a Future whose result will be a multipart message.
-
send(msg, flags=0, copy=True, track=False) Send a single zmq frame.
Returns a Future that resolves when sending is complete.
Recommend using send_multipart instead.
-
send_multipart(msg, flags=0, copy=True, track=False) Send a complete multipart zmq message.
Returns a Future that resolves when sending is complete.
-
poll(timeout=None, flags=1) poll the socket for events
returns a Future for the poll results.
-
Poller¶
Poller subclass that returns asyncio.Future s from poll,
for use in coroutines and async applications.
See also
zmq.Poller for the inherited API.
-
class
zmq.asyncio.Poller Poller returning asyncio.Future for poll results.
-
poll(timeout=-1) Return a Future for a poll event
-