jupyter 笔记本之间的自定义消息
Custom message between jupyter notebooks
是否可以使用 Anaconda 的 ZMQ 部分以某种方式在 jupyter notebook 之间进行自定义消息传递?我的意图是,如果有一个有限制的解决方案,我为什么要编写自己的通信解决方案,或者安装新的东西:-)
我想查询所有可用的笔记本,如果需要的笔记本已启动并且 运行 那么我想将自定义的流式数据发送到该笔记本。 (之前我是用 asyncio socket server/client 架构和纯 .py 脚本实现的)。
不幸的是 messaging documentation 对我帮助不大。
提前致谢!
sm.
Q : "Is it possible to use ZMQ part of Anaconda for custom messaging between jupyter notebooks somehow?"
当然可以。
选项 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.
架构设计和实施的智慧和稳健性是您的。
是否可以使用 Anaconda 的 ZMQ 部分以某种方式在 jupyter notebook 之间进行自定义消息传递?我的意图是,如果有一个有限制的解决方案,我为什么要编写自己的通信解决方案,或者安装新的东西:-) 我想查询所有可用的笔记本,如果需要的笔记本已启动并且 运行 那么我想将自定义的流式数据发送到该笔记本。 (之前我是用 asyncio socket server/client 架构和纯 .py 脚本实现的)。
不幸的是 messaging documentation 对我帮助不大。
提前致谢!
sm.
Q : "Is it possible to use ZMQ part of Anaconda for custom messaging between jupyter notebooks somehow?"
当然可以。
选项 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.
架构设计和实施的智慧和稳健性是您的。