问题标签 [pyzmq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4082 浏览

zeromq - PyZMQ 是否为每个新的客户端连接处理创建线程?

我正在使用 PyZMQ 创建请求/回复服务器,并且我试图弄清楚为每个新客户端连接创建线程的行为是否由 PyZMQ 自动处理。最终,我试图弄清楚来自一个需要很长时间才能回复的客户端的请求是否会阻止来自所有其他客户端的请求。

通常,我会在 Python 套接字实例上调用 accept,阻塞直到建立新连接,然后在单独的线程中处理任何新连接。但是,PyZMQ 套接字似乎不支持这样的工作流程。那么,这在 PyZMQ 中是如何处理的呢?如果 PyZMQ REP 套接字有多个连接到它的客户端,它如何正确地将回复路由回发出请求的客户端?而且,我该如何设计我的代码,以便在客户端发出长时间运行的请求时不会阻止来自其他客户端的请求?

我知道我可以使用 PyZMQ 提供的基于 Tornado 的 EventLoop,我只是想更好地了解如果这不是一个选项,它将如何工作。

0 投票
1 回答
235 浏览

python - 从 ZMQ 子队列获取特定消息

我有一个使用 ZMQ 的 python 消息传递应用程序。每个对象都有一个 PUB 和一个 SUB 队列,它们相互连接。在某些特定情况下,我想等待 SUB 队列中的特定消息,将我不感兴趣的消息留待以后处理。

现在,我正在获取所有消息并将那些我对 Python 队列不感兴趣的消息排队,直到找到我正在等待的消息。但他的意思是,在每个处理路由中,我需要首先在 Python 队列中检查旧消息。有没有更好的办法?

0 投票
1 回答
904 浏览

uuid - 多个订阅者的相同 ZMQ_IDENTITY

我正在构建一个 zeromq PUB-SUB 模式,其中一个发布者有很多订阅者。我想构建持久的订阅者,所以我发现了 ZMQ_IDENTITy 套接字选项。

选择 Identity 的值时应该考虑什么?我可以对所有订阅者采取同样的做法吗?由于它们都是相同类型但在不同的机器上,这应该是一个问题,对吧?此外,UUID 是否仅像 zguide 示例中解释的那样通过 inproc 服务生成?

0 投票
1 回答
403 浏览

python - ZeroMQ 第二次连接因 einval 失败

我有一个 C-ZMQ 客户端,它接收两个随机端口(来自pyzmq服务器)然后连接到它们。

通常,一切正常,但有时第二次连接失败,errno 设置为EINVAL. (即使我在连接调用之间切换,第二个仍然失败)。

端口号很好,看起来像是 ZeroMQ 中的某种竞争条件。

任何人都知道我该如何解决这个问题?

[编辑]:

服务器发送此结构中的端口“ port1:port2”例如“ 1234:1235”服务器上的数据包的 hexdump 是31 32 33 34 3a 31 32 33 35 ,客户端上是31 32 33 34 3a 31 32 33 35 01

并且因为第二次连接的额外字节失败......

也许这是我使用 zmq ver 2.2.0之间pyzmq的某种兼容性错误zmq

0 投票
1 回答
1892 浏览

memory - Zeromq 内存泄漏 (pyzmq)

您好我正在尝试使用呼吸机/工作人员/接收器模式使用 ZeroMQ 发送大数据包。

我尝试添加工人。每次,sink 进程内存使用量都会增加一点。然后它在大约 6 或 7 名工人时达到一个临界点,突然内存呈指数增长,直到它死于:

这是代码(仅显示工作器/接收器模式):

这仅仅是缺乏硬件资源吗?数据积压?或者有没有办法避免这种情况?

我正在运行具有 16gb 内存的 OSX Mountain Lion 和具有 zmq 2.2.0.1 的 Python 2.7。

谢谢

0 投票
1 回答
3176 浏览

gevent - 为什么在此示例中需要 gevent.sleep(0.1) 以防止应用程序阻塞?

我正在把头发拉到这个上面。我正在尝试使用 zeromq 和 gevent 获得最简单的示例。我将此脚本更改为使用 PUB/SUB 套接字,当我运行它时,“服务器”套接字永远循环。如果我取消注释 gevent.sleep(0.1) 行,那么它会按预期工作并让给另一个绿色线程,在这种情况下是客户端。

问题是,为什么我必须手动添加睡眠呼叫?我认为当我导入 zmq 的 zmq.green 版本时,发送和接收调用是非阻塞的,并且在下面进行任务切换。

换句话说,为什么我必须添加 gevent.sleep() 调用才能使这个示例正常工作?在 Jeff Lindsey 的原始示例中,他正在执行 REQ/REP 套接字,并且他不需要添加睡眠调用……但是当我将其更改为 PUB/SUB 时,我需要它来让客户端进行处理。

0 投票
1 回答
541 浏览

python - 更新 libzmq 后 pyzmq 中的导入错误

当我尝试将我的 ZeroMQ 更新到新版本 3.2 时出现错误。这是我的输出:

我真的不知道发生了什么事。我正在使用 Ubuntu 12.04 并使用 Python 进行开发。我已经检查过 Stack Overflow,但我什么也没看到。它以前运行良好,但在安装 pyzmq 2.2.0.1 后我开始出现此错误。

谁能帮我解决这个问题?

谢谢 MAXA

0 投票
1 回答
394 浏览

zeromq - 如何设置 zeromq 发送消息块?

如何配置zeromq可以发送块消息的参数,</p>

当一个进程向另一个进程发送消息时,</p>

如果另一个进程没有收到消息,则发送消息的进程将在send函数上阻塞return

0 投票
2 回答
8771 浏览

distributed - ZeroMQ,如何连接到外部 tcp 套接字?

您能告诉我如何使用 ZeroMQ 在位于不同服务器上的两个程序之间使用一些通用套接字发送消息吗?与所有本地套接字程序一起工作,但我不明白它们如何传播到不同的地方。因为爬升错误:

请解释一下,如果不难举个例子。谢谢!

0 投票
4 回答
6647 浏览

python - py2exe:错误:libzmq.pyd:没有这样的文件或目录

在 py2exe 构建期间,我收到以下错误:

谁能解释我是否真的需要它,在哪里可以找到它或如何排除它。

谢谢麦兹