ZeroMQ 设计决策

发布于 2024-09-25 06:54:00 字数 114 浏览 9 评论 0原文

在 REQ/REP 套接字中,如果套接字向死节点(断开连接)发送请求,则消息不会被传递并保留在占用内存的消息队列中。如何清除这些未发送的消息(比方说,在队列中等待时间超过 1 分钟的消息)?

谢谢!

In a REQ/REP socket, if the socket send a request to a dead (disconnected) node the message isn't delivered and stays in a message queue occupying memory. How can one clean these undelivered messages (let's say, messages that are in the queue for more than 1 minute)?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橙味迷妹 2024-10-02 06:54:00

您可能需要设置可选参数ZMQ_LINGER

ZMQ_LINGER 选项应设置
指定的滞留时间
插座。滞留时间决定
待处理的消息有多长
尚未发送给对等方的将徘徊
套接字关闭后在内存中
与 zmq_close(3) 一起,并进一步影响
套接字的终止
与 zmq_term(3) 的上下文。

...正值将设置消息在队列中阻塞的最长时间。


http://api.zeromq.org/2-1-1:zmq-setsockopt

You might want to set the optional parameter ZMQ_LINGER:

The ZMQ_LINGER option shall set the
linger period for the specified
socket. The linger period determines
how long pending messages which have
yet to be sent to a peer shall linger
in memory after a socket is closed
with zmq_close(3), and further affects
the termination of the socket's
context with zmq_term(3).

... for which a positive value will set a maximun time for message to be blocked in the queue.

See
http://api.zeromq.org/2-1-1:zmq-setsockopt

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文