【发布时间】:2018-01-10 20:35:50
【问题描述】:
我有一个 Python 脚本,它有时会运行一个持续约 5-60 秒的进程。在此期间,对 session.publish() 的 10 次调用将被忽略,直到脚本完成。脚本完成后,所有 10 条消息都会以洪水的形式发布。
我已通过在调试模式下打开 Crossbar.io 路由器来证实这一点,它会在时间结束后显示与已发布消息相对应的日志(而不是按预期运行期间)。
有问题的脚本很长、很复杂,包括 Crossbar/Twisted/AutobahnPython 的前端和后端组合。我觉得如果我试图将其浓缩并包含在此处,我可能会误报问题。
什么原因导致无法立即发布?
到目前为止有几次不成功的尝试:
-
Source:Twisted 需要“非阻塞代码”。因此,我尝试合并
reactor.callLater,但没有成功(我也不知道如何为publish事件执行此操作)。 - 我查看了 idea of using Pool 以派生工作人员来执行发布。
- AutobahnPython 存储库似乎没有任何真正包含这种情况的示例。
谢谢!
【问题讨论】:
-
@Jean-PaulCalderone 虽然另一个问题可能与这个问题有类似的答案,但这些问题并不表示相同的症状。这个问题没有提到 websocket ping 超时,所以我认为将其称为重复不是正确的决定。
标签: python twisted autobahn crossbar