ZMQ Pub/Sub returns ETERM
ZMQ Pub/Sub returns ETERM
我在一个进程中有一个 ZMQ_PUB 套接字,连接到另一个进程中的 ZMQ_SUB 套接字,因为它是另一台服务器。我唯一需要做的就是发布尽可能多的消息。我确定它先连接了。
我正在 运行 进行负载测试,从 PUB 发出数千条相同的消息。另一方面,我正在轮询 ZMQ_SUB 套接字,并仅在需要时接收消息。
奇怪的是,每收到1000条消息,zmq_poll returns ETERM大约有3次。想不通了。
-- 解决方案在下方评论。
原来我误解了 poll、recv 和 send 函数的 return 代码。每次收到信号它 returns -1,它确实收到很多 EINTR,这很好,完全正常。我可以忽略它们并重复我正在尝试做的事情。在我的投票中,我可以继续。如果它来自发送或接收,我可以继续尝试发送或接收只要 errno == EINTR。问题解决了
我在一个进程中有一个 ZMQ_PUB 套接字,连接到另一个进程中的 ZMQ_SUB 套接字,因为它是另一台服务器。我唯一需要做的就是发布尽可能多的消息。我确定它先连接了。
我正在 运行 进行负载测试,从 PUB 发出数千条相同的消息。另一方面,我正在轮询 ZMQ_SUB 套接字,并仅在需要时接收消息。
奇怪的是,每收到1000条消息,zmq_poll returns ETERM大约有3次。想不通了。
-- 解决方案在下方评论。
原来我误解了 poll、recv 和 send 函数的 return 代码。每次收到信号它 returns -1,它确实收到很多 EINTR,这很好,完全正常。我可以忽略它们并重复我正在尝试做的事情。在我的投票中,我可以继续。如果它来自发送或接收,我可以继续尝试发送或接收只要 errno == EINTR。问题解决了