问题标签 [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.
python - ZMQ软件与语言绑定的区别
ZMQ 软件(可从http://zeromq.org/intro:get-the-software获得)和语言绑定有什么区别?
由于我已经安装了语言绑定并且我的示例工作正常(用 python 编写),那么 ZMQ 软件有什么用?
python - 从并发请求的分布式工作中发回正确的信息
我已经构建了一个 Flask+nginx+gunicorn 应用程序,它通过一对 zmq 套接字与服务对话,该套接字又将请求发送给分布式工作人员并取回结果。
但是,我没有进行大量检查以查看是否将正确的信息发送回用户。这意味着有时如果用户 A 和用户 B 几乎同时请求他们的数据,结果可能最终会出现在错误的用户身上。
我猜我需要在请求中发送一些上下文(比如用户名)。当结果返回时,将其放入队列中,并以某种方式确保浏览器请求根据上下文选择正确的结果。
您将如何确保将数据发送给其合法所有者?
代码如下所示:
python - PyZMQ Gevent Websocket 连接错误
我正在尝试使用 python zmq 发布/订阅模式。我在客户端面临一个奇怪的问题。在客户端,我使用 pyzmq、gevent-websocket 和 bottle 作为 wsgi 服务器。虽然它对一个客户端非常有效,但其他客户端正在等待第一个客户端断开连接。在使用一个客户端时,如果我断开连接并重新连接,每次重新连接都会收到两次或更多消息。
我见过的所有示例都使用 while 循环来接收消息。我对这个while循环和寻找像socket.on_message这样的回调函数感到不舒服。出于实验目的,我编写了一个 node.js 版本,没有像这样的 while 循环,但在我的项目中节点被排除在外。节点版本在这里:
这里我不使用while循环。
我在 python 代码上做错了什么?
python - ZeroMQ ROUTER 套接字无法向 REP 套接字发送消息
我通过使用 ZeroMQ 的路由器实现了一个简单的请求-回复架构。这适用于PyZMQ 版本 2.1.11。不幸的是,当我在PyZMQ 版本 14.0.0上测试它时,发送方(REQ)可以发送到路由器,然后路由器收到它的消息并发送到接收方(REP),但接收方没有收到消息!当我将 PyZMQ 从 2.1.11 升级到 14.0.0 时,我遇到了这个问题。
请求 <-> 路由器 <-> 代表
这是我的代码:
发件人.py
路由器.py
接收器.py
当我使用这种架构时:
The DEALER
does not route to multiple receivers. DEALER
only use round-robin method for sending messages to receivers. If ROUTER
could be used instead of DEALER
, then messages could be routed to specific receivers and will do round-robin between those.
python - 在 python 中使用倒置 zeromq pub-sub 进行测试
我确实在我的代码中使用了 pyzmq 2.2.0.1(Windows 或 Linux 上的 python27),当我运行它时它可以工作(也是 python 线程):
当我将 zmq 升级到 13.1.0(现在升级到 14.0.0)时,我发现这个测试不起作用。
我尝试搜索有关它的一些更改,但没有找到。当我在不同的进程上创建这个队列时,它可以工作,但我不想为我的测试打开新进程。有什么解释为什么它不起作用,我怎样才能正确地做这个测试?
谢谢。
python - pyzmq中的套接字句柄泄漏?
嗨 StackOverflow 的好人。
我正在使用 pyzmq 并且我有一些长时间运行的进程,这导致发现套接字句柄处于打开状态。我已将有问题的代码缩小到以下内容:
pyzmq 版本为 pyzmq-13.1.0
要么 pyzmq 中存在错误,要么我做错了什么。我希望你能帮帮我!!
谢谢!
python - 如何导入与 sys modul 同名的本地模块?
我已经编译了 pyzmq (python zeromq binding) 模块,并希望使用该模块而不是系统模块。
如何跳过从系统加载模块,以便我的 import zmq 首先在当前文件夹中搜索?
python - 在 PyZMQ 中发送 NULL 消息
我正在尝试将以下基于 0MQ 的 HTTP 服务器示例翻译成 C 语言,请参见此处: Hintjens' blog into Python。
问题出在下一行,我尝试翻译 C 表达式
在 Python 中,我有以下堆栈跟踪:
实际上,sock.send 只能用于发送缓冲区或消息。有没有办法从 Python 以另一种方式使用 0MQ 的 zmq_send 来发送 NULL 帧?
顺便说一句,Github 条目中的注释显示即使在 C 中它也可能不会关闭与客户端的连接。如何要求远程客户端关闭其连接(在 Python 中)?
我在 Windows 32 位上使用 libzmq 4.0.1 和 PyZMQ 14.0.1 而不是 Python 3.3.2。
python - 使用 Esky 和 zmq 模块冻结应用程序
我正在尝试使用 Esky 和 cx_freeze 冻结我的应用程序。
我的 setup.py 看起来像这样:
但是,似乎 pyzmq 没有正确包含在冻结中。
我不断得到:
关于如何解决这个问题的任何想法?
EDIT2::好的,有一个答案为我解决了它>> https://bitbucket.org/anthony_tuininga/cx_freeze/issue/55/failed-with-pyzmq-1401-py33-win-amd64egg
编辑:正如建议的那样,被迫使用 cython 后端还有另一个错误堆栈跟踪:
我猜加载本机存在问题libzmq.dll
(但是,zmq.libzmq.pyd
结果dist
文件夹中有一些),有人解决了这个问题吗?
c++ - zmq 呼吸机/工人/水槽范式无法与子进程一起工作
我正在尝试复制 ZMQ 指南中描述的呼吸机/工人/水槽范例。我有与 ZMQ 示例中描述的相同的 Python Ventilator、相同的 C++ worker 和相同的 Python Sink。我想从一个主要的 Python 脚本启动呼吸机、工作程序和水槽,所以我在呼吸机和水槽周围创建了“类”包装器,这两个类都是 Python 模块“multiprocessing.Process”的子类。由于 C++ 是二进制文件,因此我使用 Python 的 subprocess.Popen 调用来启动它。
启动所有这些的顺序如下:
我发现当我像这样启动组件时没有数据通过系统。但是,如果我在自己的 shell 中启动 C++ 二进制文件,并且只从主 python 脚本启动 sinkObj 和 ventObj,它就可以正常工作。
如果这更像是一个 Python 问题而不是 ZMQ 问题,我提前道歉,但我没有遇到像 Python 子进程这样的问题。我也尝试过使用 os.system() 而不是子进程......但同样的问题。我把所有的代码放在这个网站上:https ://github.com/kkarrancsu/zmqtest 如果有人想测试一下。该 git 上有一个自述文件,它告诉您文件是什么。
关于为什么会发生这种情况的任何想法?
- - - - - - - - - - - - - 更新 - - - - - - - - - -
我发现,如果我创建一个简单地启动 C 二进制文件的 shell 脚本,并使用 os.system('run_the_shell_script') 调用该 shell 脚本,它就可以工作!所以这意味着我使用 subprocess.Popen(...) 的方式有问题,但似乎无法确定问题所在。我尝试使用 shell=True 标志,但它仍然挂起......