假设我有一个文件urls.txt,其中包含我正在监控的URL列表.我的监控脚本偶尔会编辑该文件,例如,指示每个URL是否可访问.我还想手动编辑该文件,添加或更改URL列表.我怎样才能允许这样我手动编辑时不必考虑它?
以下是一些可能的答案.你会怎么做?
参与hackery就像让程序检查vim或emacs创建的锁定文件一样.由于这只适合我,这实际上是有效的.
如果人类编辑始终优先,那么只需要总是让人类破坏程序的更改(例如,忽略编辑器警告文件已在磁盘上更改).然后程序可以在下一个循环中重做它的更改.尽管如此,在用户编辑文件时更改文件并不是那么好.
永远不要让人触摸程序正在进行修改的文件.重新思考设计,只有一个文件只有人类编辑,另一个文件只有程序编辑.
为人类提供一个自定义工具来编辑执行相应文件锁定的文件.这可能与锁定文件然后启动编辑器或自定义接口(可能是简单的命令行界面)以插入/更改/删除文件中的条目一样粗糙.
使用数据库而不是平面文件,然后锁定全部自动处理.
(请注意,我编写了URL监控示例,以使其更具体,因为我实际想到的可能是太奇怪和分散注意力 - 这个问题严格来说是关于如何让人类和程序都修改相同的状态文件.)
我会使用一个数据库,因为基本上你需要构建它来实现你想要的东西.为什么重新发明轮子?
如果完整的DBMS负载太大,请将文件分成两部分并定期同步.URL是否可访问听起来不像用户将要更改的内容,因此不应由它们编辑.
在同步过程中(虽然它可能是监视器的子功能,但必须锁定监视器和用户),删除监视文件中不在用户满的条目.此外,将已添加到用户文件中的文件添加到监视文件中(并开始监视它们).
但是,我会为用户使用特殊的前端数据库方法,因为现在你可以获得相对较好的轻量级数据库.