php zmq 链接超时,zmq超时处理设置超时时间

zmq客户端send服务端,如果zmq服务端不响应或长时间不返回,那么就会处于一直等待的状态,且阻塞在这个地方,使用poll设置zmq客户端等待时间,超时重试或者重新开启一个socket

zmq设置超时时间,并且超时重试

import zmq

import time

context = zmq.Context()

socket = context.socket(zmq.REQ)

socket.connect("tcp://localhost:5555")

poll = zmq.Poller()

poll.register(socket, zmq.POLLIN)

while True:

socket.send_string('hello')

while True:

socks = dict(poll.poll(3000))

if socks.get(socket) == zmq.POLLIN:

ret = socket.recv()

print(ret)

break

else:

socket.setsockopt(zmq.LINGER, 0)

socket.close()

poll.unregister(socket)

socket = context.socket(zmq.REQ)

socket.connect("tcp://localhost:5555")

poll.register(socket, zmq.POLLIN)

socket.send_string('hell

你可能感兴趣的:(php,zmq,链接超时)