【发布时间】:2018-09-02 19:47:10
【问题描述】:
我在 Python 中有一个正在运行的 CLI 应用程序,它使用线程来执行一些工作程序。现在我正在为这个应用程序使用电子编写一个 GUI。对于简单的请求/响应,我使用gRPC 在 Python 应用程序和 GUI 之间进行通信。
然而,我正在努力寻找合适的发布机制来将数据推送到 GUI:gRPCs 集成流无法工作,因为它使用了生成器;正如我之前提到的,阻塞任务是使用线程(threading.Thread 的子类)执行的。我还想从这些线程中发出某些事件(例如进度)。
然后我找到了Flasks SocketIO 实现,但是,这是一个阻塞执行,因此并不真正适合我的想法 - 我必须再次执行两个进程(Flask 和我的 CLI 应用程序)...
我发现的另一个包是websockets,但我不知道如何实现他们在patterns 中提到的这个producer() 函数。
我的最后一个想法是部署一个基于代理的消息系统,例如 Redis,或者干脆回退到无代理的 zmq,这对于 GUI 应用程序的设置有点麻烦。
那么简单的问题:
是否有任何简单的框架允许在 Python 中创建服务器“任务”,我可以将消息传递到发布到?
【问题讨论】:
标签: python api websocket publish-subscribe