AutobahnPython + 扭曲'Publish'脚本完成后泛滥消息



我有一个Python脚本,有时会运行一个持续~5-60秒的进程。在此期间,对session.publish()的十次调用将被忽略,直到脚本完成。脚本完成后,所有十条消息都会在洪水中发布。

我已经通过在调试模式下打开 Crossbar.io 路由器来证实这一点,并且在时间结束后(而不是按预期运行时)显示与已发布消息相对应的日志。

有问题的脚本很长,很复杂,包括Crossbar/Twisted/AutobahnPython的组合前端和后端。我觉得如果我试图压缩并包含在这里,我会冒着误报问题的风险。

发布不会立即发生的原因是什么?

到目前为止,几次不成功的尝试:

  • 来源:扭曲需要"非阻塞代码"。所以,我尝试合并reactor.callLater但没有成功(我也不知道如何为publish活动做到这一点)。
  • 我研究了使用 Pool 生成工作线程来执行发布的想法。
  • AutobahnPython 存储库似乎没有任何真正包含这种情况的示例。

谢谢!

发布不会立即发生的原因是什么?

反应堆必须有机会运行才能发生 I/O。 示例代码不允许反应器运行,因为它在用户代码中的while循环中长时间保持执行。

最新更新