问题标签 [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 回答
3176 浏览

python - ZeroMQ PubSub 无法使用 Pyzmq

我可能缺少一些非常小的东西,但我无法使用官方 Pyzmq 包(https://github.com/zeromq/pyzmq)在 Python 中获得一个简单的 pub-sub 示例。

我正在使用最新的 ZeroMQ 稳定版 4.0.3,并且能够在 c 中轻松获得一个简单的示例。我在 Mac 和 Ubuntu 机器上都试过了。我期待对此的任何意见;)

这是我的代码:

子.py

发布.py

0 投票
1 回答
226 浏览

python - Python龙卷风 - 如何在不停止循环的情况下创建阻塞调用?

我正在使用 ZMQ 流,它们基于他们自己的龙卷风 IOLoop 实现。我遇到了一个我想要同步行为的问题,但 IOLoop 迫使我进入异步执行。以下是具体情况:

我有一个单独负责相机设置的类(相机处于不同的进程中):

我期望发生的是 set_settings 只会在设置生效后返回,但实际发生的是执行只是继续,就像我产生了一个线程一样。在 IOLoop 中等待的正确方法是什么?

0 投票
1 回答
207 浏览

python-2.7 - [zguide]pyzmq 发布不起作用

我从 github 下载 zguide 源代码。我发现 python 示例 code-wuserver.py 不起作用。运行wuserver.py和wuclient.py,wuclient.py不能recv任何数据,但是如果我运行c代码-wuserver.c,wuclient.py可以recv数据。

wuserver.py

wuclient.py

0 投票
1 回答
1909 浏览

python - 从 ZeroMQ (pyzmq) 套接字接收所有可用消息

有没有一种很好的方法来接收 zmq 套接字上的所有可用消息?特别是在使用轮询器时。

或者是保持调用非阻塞recv()直到没有任何东西的唯一解决方案?

编辑 :

我想我可能已经回答了我自己的问题。使用socket.poll()是我能看到的最干净的。

0 投票
2 回答
2769 浏览

python - ZeroMQ:PUSH 上的 HWM 不起作用

我正在尝试编写一个服务器/客户端脚本,其中包含一个用于发泄任务的服务器以及多个执行它的工作人员。问题是我的呼吸机有很多任务,它会在心跳中填满内存。我尝试在绑定之前设置 HWM,但没有成功。只要工人连接,它就会继续发送消息,完全无视设置的 HWM。我还有一个水槽,用来记录已完成的任务。

服务器.py

工人.py

接收器.py

0 投票
2 回答
2926 浏览

python - ZMQ 套接字连接超时

我正在尝试将套接字连接到端点,直到套接字从该端点接收数据。这是因为那个时候端点可能不存在。

目前连接停止,我猜是因为它无法解析主机名,这需要一段时间。

有没有办法在套接字连接上设置超时?

0 投票
2 回答
3904 浏览

python - easy_install pyzmq,cygwin。错误:安装脚本退出并出现错误:命令“gcc”失败,退出状态为 1

我正在尝试在 cywgin 中运行 ipython notebook。为此,我需要安装 pyzmq。但是,这不起作用。我已经附上了下面的问题,有人可以帮忙吗?

0 投票
1 回答
401 浏览

python - 当发送者关闭套接字时,为什么我的 recv 会挂起大消息?

当我从套接字发送数据然后立即关闭它(不更改默认设置)时,小数据大小会成功发送,但大数据(> 2MB)则不会。

以下是我设置接收器的方式(最后在 recv() 上阻塞):

然后是发件人:

接收器得到数据就好了:

但是,如果我使用更大的消息,例如arr = bytearray([1]*int(2e6)),那么接收器会一直阻塞,等待数据。

更改 LINGER 设置似乎没有任何区别(我相信无论如何默认为无限等待)。

在发送方的发送和关闭之间添加 sleep(1) socket.send(arr); time.sleep(1); socket.close()可以解决问题:接收方正确获取数据。

如果 LINGER 默认为 -1,为什么这在没有睡眠的情况下不起作用?在处理大量数据时,发送然后立即关闭套接字的正确方法是什么?

0 投票
1 回答
1861 浏览

python - 试图了解 zeromq 高水位线行为

我一直在使用 pyzmq 和使用 HWM 进行简单的负载平衡,但我不太了解我所看到的行为。

我设置了一个简单的多线程测试,一个 DEALER 客户端通过 ROUTER 到 DEALER 模式连接到两个工作人员。HWM 设置为 1。其中一个 worker 非常快,另一个非常慢,客户端所做的只是向服务器发送 100 条垃圾邮件。这通常似乎有效,并且较快的工作人员处理的消息比速度较慢的工作人员要多得多。

但是,即使我将慢速工作人员设置得如此缓慢,以至于快速工作人员应该能够在慢速工作人员完成甚至一条消息之前处理 99 条消息,但慢速工作人员似乎仍然收到至少 2 或 3 条消息。

高水位标记行为不准确还是我遗漏了什么?

服务器代码如下:

客户端代码如下:

示例输出:

0 投票
1 回答
449 浏览

python - pyzmq pub/sub 套接字可以双向使用吗?

我正在使用pyzmq pub/sub 套接字作为服务器向客户端订阅者发布通知。它工作得很好,但我有一个问题:

有没有办法使用同一个套接字将信息发送回服务器?或者我需要一个单独的插座吗?

用例:我只想让服务器查看谁在积极订阅通知,所以我希望我可以允许客户端定期发回“心跳”消息。我有一个用例,如果没有客户端在监听,我希望服务器生成一个。(这是一个仅使用 localhost 的多进程系统。)