【Python】云端Jupyter后台运行长耗时笔记本文件的分析和方法

本文探讨了Jupyter Notebook在服务器端计算与浏览器显示分离的特性,解释了为何关闭浏览器后无法实时获取输出。提供了使用魔术方法保存输出以解决显示问题的简单演示,以及如何在任务结束后查看结果。
摘要由CSDN通过智能技术生成

前提:Jupyter已部署到云服务器,且在服务器端一直保持可连接的活跃状态。


原理分析:

        实际上,Jupyter中笔记本文件的计算与显示是分开的,计算部分在服务器端进行,显示部分则由浏览器进行获取和解析。

        当我们启动并运行一个笔记本时,除非程序执行结束,或者我们手动终止,其计算部分不会因为浏览器或者标签页的关闭而被迫终止,简单的说,笔记本的运行本来就是在后台长期执行的。但是当我们关闭浏览器的标签页后,再访问该笔记本却得不到正常的输出内容,单元块的状态也不会显示正在执行。

        原因是笔记本文件中的计算内核运行在服务器端,执行程序后输出的消息是由内核产生的,而浏览器端负责解析并显示内核所输出的消息,因此当浏览器未连接时,任何输出信息都会丢失。另外,重新启动浏览器访问笔记本时,浏览器端保存的信息也不足以恢复接收输出。所以造成程序确实在后台运行,但浏览器端不能正常显示及时的输出。(官方仍未解决此问题)


折衷解决浏览器端显示问题的方法:

使用捕捉输出的魔术方法保存输出当程序执行完成后,再调用对应方法查看其保存的输出信息。

        简单演示:

        判断当前程序是否执行完毕(此状态与浏览器状态无关)

只有当长耗时任务结束后才可查看魔术方法保存的输出结果。

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值