问题描述
是否可以以某种方式使用 Anaconda 的 ZMQ 部分在 jupyter 笔记本之间进行自定义消息传递?我的意图是,如果有一个有限的解决方案,我为什么要编写自己的通信解决方案,或者安装一些新的东西:-) 我想查询所有可用的笔记本,如果所需的笔记本已启动并正在运行,那么我想将自定义的流式数据发送到该笔记本。 (之前我使用纯 .py 脚本使用异步套接字服务器/客户端架构制作它)。
不幸的是,messaging documentation 对我帮助不大。
先谢谢你!
sm。
解决方法
Q:“是否可以使用 Anaconda 的 ZMQ 部分以某种方式在 jupyter 笔记本之间进行自定义消息传递?”
当然。
选项 A:
可以扩展 jupyter 框架以将所有新功能包含在 FOSS 核心中
选项 B :
可以在 jupyter 内部信令/消息传递功能之上并独立于其实例化自己的 ZeroMQ 信令/消息传递基础设施,并且仅使用纯用户级代码。
include zmq
my1stContextINSTANCE = zmq.context() # The Engine
my1stPublisherSOCKET = my1stContextINSTANCE.socket( zmq.PUB ) # its Socket
my1stPublisherSOCKET.setsockopt( zmq.LINGER,0 ) # configurations
my1stPublisherSOCKET.setsockopt( zmq.SNDBUF,2000000 ) # ...
...
my1stPullDataSOCKET = my1stContextINSTANCE.socket( zmq.PULL )# its Socket
my1stPullDataSOCKET.setsockopt( zmq.LINGER,0 ) # configurations
my1stPullDataSOCKET.setsockopt( zmq.RCVBUF,100000 ) # ...
...
while True:
...
my1stPublisherSOCKET.send( "INF: message payload[{0:}]".format( repr( _ ) ) )
...
if ( my1stPullDataSOCKET.poll( 0 ) ) ... ):
...
elseif:
...
else:
...
continue
在所有其他对等方上相互相同。
无论哪种方式,ZeroMQ 框架都非常适合这样做。您可能喜欢阅读this & this。
架构设计、实施智慧和稳健性由您决定。