ZeroMQ支持.poll()到.recv()之前的非阻塞测试
可以使用.poll().poll( timeout = None, flags = zmq.POLLIN ) # poll the socket for eventsThe default is to poll forever for incoming events. Timeout is in milliseconds, if specified.
Parameters:
timeout : int [default: None]
The timeout ( in milliseconds ) to wait for an event. If unspecified (or specified None), will wait forever for an event.
flags : bitfield (int) [default: POLLIN]
The event flags to poll for ( any combination of POLLIN | POLLOUT ). The default is to check for incoming events ( POLLIN ).
Returns:
events : bitfield (int)
The events that are ready and waiting. Will be 0 if no events were ready by the time timeout was reached.
ZeroMQ支持.recv()的非阻塞异步模式
所以可以构建自己的、非阻塞的、软RT调优的.recv()忙循环。在
^{pr2}$
ZeroMQ处理的是原型模式,而不是“哑”套接字
因此,害怕遇到“老”——[REP]-回答(仍然挂着(它必须挂在那里,不是吗?)在服务器端的内部队列中)是正确的,因为REQ/REP-模式正是这样做的。在
客户端有权优雅地关闭相关资源并向服务器发送清除马戏团的指示。在
ZeroMQ支持非常动态地设置/拆除地面元件,公平的做法是不让通信对手(在本例中为服务器)对通信对等方的意图产生任何怀疑。在
阅读以下详细信息:my_client_context.setsockopt( zmq.LINGER, 0 ) # do not wait for anything
my_client_socket.close() # statefull close
my_client_context.term() # graceful termination / release of resources ( no MEM leaks )