Python如何真正快速地测试NAS驱动器的可用性?

2024-10-06 06:52:36 发布

您现在位置:Python中文网/ 问答频道 /正文

对于洪水预警系统,我的Raspberry Pi几乎实时地敲响了警钟,但它使用NAS驱动器作为邮箱,将数据文件输出到PC上,以便以较慢的时间绘制和报告,并接收各种输入数据文件。Pi上的Python只需10秒就可以确定它旁边的NAS驱动器当前不可用。我需要在不到一秒钟内为每次访问尝试发生,否则延迟加起来,Pi无法及时刷新硬件看门狗。(Pi以固定的周期执行任务:每秒钟、每15秒(看门狗)、每75秒和每10分钟。)所有光盘访问尝试之前都会使用try except进行测试。但是试一下除了没有帮助,就像测试一样os.path.exists存在()或with open()都需要10秒钟才能引发异常,即使NAS驱动器已关机。就好像在通信协议中有一个10秒的超时,而不是在软件中。你知道吗

有没有办法告诉你,除了不要那么耐心之外,你还要努力吗?如果没有,如何更直接地指示NAS驱动器是否将在下一次读/写时保留Pi,以便Pi可以放弃并等待下一个周期?我已经做了所有的文件排队,但它是浪费,如果每检查需要10秒。你知道吗


Tags: 硬件数据文件报告时间pi绘制看门狗raspberry
1条回答
网友
1楼 · 发布于 2024-10-06 06:52:36

在这个阶段采用MQTT将是这个即将完成的项目的一个重大变化。但是你建议使用第二个脚本将近乎实时的Python与NAS驱动器解耦,我认为这是一个不错的方法。如果Python disc接口命令等待10秒等待答案,那我就无能为力了。但是我可以通过将所有时间关键型文件访问保持在Pi内存中的本地,并在Pi和NAS驱动器之间的两个方向上复制所有文件来阻止它占用时间关键型Python函数。事实上,我已经有了Python中的机会复制程序代码—我只需要将它从主要的时间关键型脚本移到一个单独的脚本中,该脚本将复制文件。而replicatorpython脚本将执行任何等待操作,而不是时间关键型Python脚本。Pi调度器将为我解耦这两个脚本。谢谢你的帮助-我开始绝望了!你知道吗

相关问题 更多 >