所以我有一个相当大的json数据库,我用python维护。它基本上每小时从网站上抓取数据,我每天都会通过crontab在系统(Linux Mint)上重启。我的问题是,如果系统在数据库更新过程中重新启动,我会损坏json文件。
我的问题是,无论如何都要在我的脚本中延迟系统重启以确保系统在安全时间关闭?我可以在脚本本身内部发出restart命令但如果我决定在将来运行多个与此类似的脚本,我显然会遇到问题。
这里的任何帮助将不胜感激。感谢
编辑:只是为了澄清我没有使用python jsondb包。我正在做自己的所有文件处理
答案 0 :(得分:0)
所以我对此的解决方案非常简单(只保护数据完整性):
在写之前 - 备份文件
成功写入 - 删除备份(避免加倍DB的大小)
遇到损坏文件的地方 - 恢复备份
这个想法是,如果系统在文件备份期间关闭脚本,那没关系,我们仍然有原始文件,如果系统在写入原始文件期间关闭脚本,则备份永远不会被删除,我们可以只需使用它。所有这一切只是额外的6行代码,似乎已经解决了这个问题。