我们有一个共享文件夹,其中包含一些需要处理的文件。 我们还有3台运行shell脚本的UNIX服务器,每次都会接收并处理一个文件。在脚本的末尾,文件被移走了。 3 UNIX服务器不会相互通信,并且彼此不了解。
在您看来,保证每个文件一次处理的最佳方法是什么,而不会引起并发访问问题\错误?
答案 0 :(得分:2)
你需要某种类型的文件锁定机制。一些可能性:
name.ext
,您需要在开始处理之前创建name.ext.lock
。如果这个文件已经存在 - 同样,创建失败并且#34;文件存在",这意味着有人已经在处理它,因此你不应该对它做任何事情。flock
libc api call的手册。在我的位置我做了第一个,如果我可以修改处理的工作(例如,如果我可以用脚本挂钩它们甚至我正在开发处理脚本)。如果没有,你可能需要第三个,虽然它并不总是有效。