【发布时间】:2011-02-23 07:50:26
【问题描述】:
我正在创建一个脚本来处理用户提供给我们的文件。一切都发生在同一个 UNIX 系统中(在 Solaris 10 上运行)
现在我们的设计是这样的
- 用户将文件放入上传目录
- 放置在 cron 上的脚本每 10 分钟运行一次。
- 脚本在上传目录中查找文件,对其进行处理,然后立即删除
由于历史/遗留原因,#1 无法更改。此外,需要在处理后删除文件。
我主要关心的是并发性。很可能会出现在仍在写入输入文件时运行分析脚本的情况。在这种情况下,数据将丢失,这(显然)是不可接受的。
由于我们无法控制用户选择的放置输入文件的方式,因此我们不能要求他们获得文件锁定。据我了解,文件锁仅在 UNIX 上是建议。因此,用户必须选择遵守它们。
我正在寻找有关处理此问题的最佳做法的建议。谢谢
【问题讨论】:
标签: unix file concurrency