首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >0MQ推送/拉取顺序在未连接拉取套接字时中断

0MQ推送/拉取顺序在未连接拉取套接字时中断
EN

Stack Overflow用户
提问于 2016-05-02 15:49:24
回答 1查看 431关注 0票数 0

我在0MQ (Python->C#)中有一个PUSH/PULL模式,只有一个PUSH套接字和一个PULL套接字。只要两者都连接,无论工作进程处理消息需要多长时间,排队的消息的顺序都会保持不变。

问题是,当worker断开连接一段时间后重新连接时,在此期间排队的所有消息将以任意随机顺序到达,无论它们是如何通过PUSH套接字排队的。这个问题有没有内置的解决方案,或者我应该使用更高级的模式?

我在PULL端添加了代码:

代码语言:javascript
复制
using (var receiver = new PullSocket())
            {
                receiver.Bind("tcp://localhost:5557");

                while (true)
                {
                    var payload = receiver.ReceiveFrameString();

                    log.Debug($"Payload: {payload}");
                }
            }
EN

回答 1

Stack Overflow用户

发布于 2016-05-02 16:05:04

我很确定0mq的PUSH/PULL不能保证发货的顺序。

也许你可以使用REQ/REP (或者REQ/ROUTER或者类似的模式)来代替--当你需要同步的时候,REQ/REP非常有用。在我看来,您可以创建一个进程内PUSH/PULL队列,从中提取消息并将其推入REQ套接字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36977508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档