3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
是的,您的代码大概率还在云端服务器上继续运行。
聚宽(JoinQuant)的研究环境是基于云端服务器的 Jupyter Notebook 架构。您的本地电脑(浏览器)只是一个发送指令和接收显示结果的“显示器”。当您点击运行代码后,计算任务就已经提交到了聚宽的云端服务器(Kernel)上执行。
因此,本地电脑的死机、停电、断网或关闭浏览器,都不会直接中断云端服务器上正在执行的代码。
虽然代码在云端继续运行,但您需要注意以下几种情况,它们可能会影响您最终获取结果:
当您重新启动电脑并恢复网络,再次打开该研究环境的 Notebook 时,您可能无法在原来的代码块(Cell)下方看到断网期间产生的实时 print 输出。因为前端与后端的连接曾被断开,输出流可能丢失。
虽然本地断网不影响,但聚宽平台对研究环境的资源是有严格限制的:
如果您的代码只是在最后 print 结果,或者将结果保存在内存变量中,一旦环境最终被重启,这些数据就会丢失。
为了防止掉线、死机或平台资源回收导致长时间的心血白费,建议在编写耗时较长的研究代码时采取以下措施:
1. 将结果持久化保存到文件
不要依赖内存变量或 print。在代码运行的关键节点或最终完成时,将数据写入到文件中(如 CSV、JSON 或 Pickle)。
import pandas as pd
# 假设 df 是您长时间计算得到的结果
# 将结果保存到研究环境的根目录
df.to_csv('my_long_task_result.csv')
或者使用聚宽提供的 API:
from jqdata import write_file
write_file('my_result.csv', df.to_csv(), append=False)
2. 分步保存(断点续传机制)
如果是一个需要循环处理大量数据的任务(例如遍历几千只股票),建议每处理完一部分(如100只)就将中间结果追加保存(append=True)到文件中。这样即使中途被系统强制终止,您也可以从断点处继续,而不需要从头再来。
3. 记录日志到文件
将重要的运行状态写入日志文件,方便重新连接后查看代码到底执行到了哪一步。
总结:本地掉线不用慌,云端还在帮您算。但一定要养成将重要结果写入文件的好习惯!