jupyter 笔记本之间的自定义消息

问题描述

是否可以以某种方式使用 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

架构设计、实施智慧和稳健性由您决定。