【发布时间】:2017-01-08 09:20:00
【问题描述】:
我有一组运行在不同服务器上的服务,它们都访问共享资源,例如;包含需要一些处理的视频的文件夹列表。
我想实现一些锁定机制来防止服务同时访问同一个文件夹,到目前为止,我的想法是在文件夹中创建一个文本文件作为“文件夹内锁定”并检查该文件之前是否存在处理里面的视频文件。
我很确定这个测试在服务寻找文件夹来处理的实际生产环境中表现不佳。
有什么想法吗?
任何帮助表示赞赏,在此先感谢。
【问题讨论】:
-
“锁文件”的想法听起来不错。为什么你认为它不起作用?你唯一应该记住的是doublechecking the lock
-
如果这些服务在同一台机器上,那么您应该使用正确的进程间同步 - stackoverflow.com/questions/229565/…。如果没有,那么您可以尝试使用 FileShare.None 创建基于文件的锁 - stackoverflow.com/questions/5522232/how-to-lock-a-file-with-c - 请参阅 stackoverflow.com/questions/1746781/…。不要检查该文件是否存在 - 将其锁定以确保确定。
标签: c# locking shared-directory