【发布时间】:2022-01-26 18:23:40
【问题描述】:
我是 Python 新手,所以也许这是一个微不足道的问题,但我还没有找到我正在寻找的答案。
我正在使用消息代理 (ActiveMQ) 和 STOMP 对数据运行不同的 Python 应用程序。我能够构建和运行一个应用程序,该应用程序将消息发送到它订阅的通道并触发侦听器方法。现在我正在尝试从一个 Python 应用程序(“发送者”)向队列发送一条消息,并从另一个 Python 应用程序(“接收者”)订阅它。但是,在接收器中设置连接/订阅者后,我如何使其保持活动状态并无限期地监听来自发送者的消息?
我发现的其他线程使用sleep 语句在技术上确实阻止了应用程序退出,但它也阻止了应用程序,因此它也不做任何事情。
【问题讨论】:
-
你使用什么协议和客户端实现?
-
@JustinBertram hmm 不确定您所说的客户端实现是什么意思,但对 ActiveMQ 容器使用 Stomp 协议。
-
“客户端实现”将是您用于通过 STOMP 发送和接收消息的任何内容(例如 stomp.py、stompest、stompy、stomper 等)。我假设您在这里使用的是客户端,而不是实际手动构建 STOMP 帧和操作 TCP 套接字。
-
询问 Docker 是一个红鲱鱼。相反,您需要的是一个可以执行您想做的事情的 Python 程序。它在 Docker 容器内部执行的事实是无关紧要的。它可能有多种实现,但大多数情况下,它归结为一个不断重复做事的
while循环。