问题标签 [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.
zeromq - ZeroMQ 消息大小长度限制?
假设几台机器正在使用python's
zeroMQ 客户端进行交互。
这些消息自然地格式化为字符串。
消息(字符串)的长度是否有限制?
python - ZeroMQ PUB 套接字在连接时缓冲我所有的输出数据
我注意到 zeromq PUB 套接字在连接时会缓冲所有传出数据,例如
子绑定在这些消息之后,它们应该被丢弃,因为如果没有人连接到它,PUB 应该丢弃消息。但它不是丢弃消息,而是缓冲所有消息。
如您所见,那些“不应丢弃消息”由套接字缓冲,一旦连接,它将它们刷新到 SUB 套接字。如果我在 PUB 套接字上绑定,并在 SUB 套接字上连接,那么它可以正常工作。
你只能看到输出
这种奇怪的行为导致了一个问题,它缓冲了一个连接套接字上的所有数据,我有两台服务器,服务器A向服务器B发布数据
如果服务器 B 上线,它工作正常。但是如果我启动了服务器 A 而没有启动服务器 B 怎么办?
结果,服务器 A 上的连接 PUB 套接字保留了所有这些数据,内存使用率越来越高。
问题来了,这种行为是错误还是功能?如果是功能,我在哪里可以找到提到此行为的文档?以及如何停止连接的 PUB 套接字缓冲所有数据?
谢谢。
python - 使用 PyZMQ 限制队列长度
我想限制我的 ZeroMQ 消息队列在 Python 应用程序中消耗的内存量。我知道设置高水位线会限制发送方排队的数量,但是有没有办法控制接收方排队的数量?Python ZeroMQ 绑定似乎将其设置为无限制。
我的测试场景:我有两个用于测试的 python 终端。一种是接收器:
另一个是发件人:
我socket.recv()
在接收端运行了几次以确保队列正常工作,但除此之外,让两个终端就坐在那里。发送循环似乎永远不会阻塞,并且接收提示似乎有越来越多的内存占用。
python - 通过 zeromq pyzmq 发送一个数字
我想通过 zeromq 发送大量数字,但将它们转换为 str 效率低下。通过 zmq 发送号码的最佳方式是什么?
python - 识别 ZMQ 消息的来源?
如果我通过ZeroMQ (0MQ) 套接字上的 recv() 方法收到一条消息...
...有什么方法可以让我获得getpeername()
底层套接字的价值吗?我的目标是以一种不依赖发件人提供准确信息的方式来识别消息的来源。
我正在使用 ZMQ(通过 Python)来收集主机指标,从接收者的角度来看,发送者的地址是一个有用的标识符。
或者这只是一个坏主意?
python - ZeroMQ如何在pyzmq中获取绑定地址
我在 Python 中使用 ZMQ 绑定,我想将客户端绑定到某个端口,然后将该位置发送给其他客户端进行连接。现在这是基本的绑定代码:
我需要获取的是外部地址,而不是0.0.0.0
,假设我的电脑有 IP 192.168.1.10
,我需要获取“tcp://192.168.1.10:12345”并将其发送给其他客户端,因为发送tcp://0.0.0.0:12345
是无用的。
如何获取 ZMQ 用于创建套接字的接口的外部 IP?
pc上可能有网卡的数量,如果我只是尝试使用普通套接字获取外部IP,它可能是无效的,因为我不知道ZMQ使用的是什么网卡。
python - ZMQ 轮询器在类实例中不起作用
嗨,我在 Python 类中包装一些 ZMQ 拉客户端时遇到了一些问题。这些类通过多处理模块在子进程中实例化和调用。当客户端是函数时一切正常,但当它们是类时 poller.poll() 挂起。
下面的代码有两个版本:一个有效,另一个无效。为什么?
python - 使用 ipcluster 从从节点读取标准输出
我已经使用
然后使用
我正在从节点(e [0]-e [7])上运行进程,这需要很多时间,我希望他们将进度报告发送给主节点,这样我就可以密切关注它们有多远是。
有两种方法我可以考虑做到这一点,但到目前为止,我无法实现其中任何一种,尽管在问题页面上进行了数小时的拖网。
我希望节点在没有提示的情况下将一些数据推送回主节点。即在节点上运行的长进程中,我实现了一个函数,该函数定期将其进度传递给主节点。
或者我可以将节点的标准输出重定向到主节点的标准输出,然后使用 print 跟踪进度。这是我迄今为止一直在做的事情。每个节点都有自己的标准输出,因此如果远程运行 print 不会做任何事情。我尝试将 sys.stdout 推送到节点,但这只是关闭它。
我不敢相信我是唯一想要这样做的人,所以也许我错过了一些非常简单的东西。如何使用 ipython 跟踪远程发生的长进程?
python - 在 mac os 雪豹上安装 zeromq
我已经使用http://www.zeromq.org/area:download上给出的步骤在 mac os x 上安装了 zeromq 2.1.11
然后我安装了 pyzmq(python 绑定)
但我收到以下错误:
python - 即使安装了 pyzmq,Python 也无法导入 zmq
我在 ubuntu 10.10 上安装zmq
并安装pyzmq
,一切正常。
在import zmq
我收到错误消息时,
说明“ ImportError: cannot import name initthreads
”
谁能告诉我为什么会这样?