加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 锁定文件创建的最佳方式(最佳性能)

发布时间:2020-12-15 22:04:57 所属栏目:百科 来源:网络整理
导读:我有一个Web应用程序将图像返回到我的前端. 在这个应用程序中会发生什么:当对特定图像发出请求时,应用程序检查图像是否已存在于磁盘上;如果存在则返回图像. 当磁盘上不存在映像时,我的问题就开始了.在这种情况下,对于磁盘上不存在的同一图像,同时发出两个请
我有一个Web应用程序将图像返回到我的前端.
在这个应用程序中会发生什么:当对特定图像发出请求时,应用程序检查图像是否已存在于磁盘上;如果存在则返回图像.

当磁盘上不存在映像时,我的问题就开始了.在这种情况下,对于磁盘上不存在的同一图像,同时发出两个请求.当两个线程尝试同时在磁盘上创建相同的文件时,会出现问题.

为了解决这个问题,我尝试做的是在创建磁盘映像时创建一个Mutex.但它有一个问题:由于大量的同时请求导致服务器负载很大,服务器崩溃了.

我想问一下你的想法是什么来解决这个问题.或者你会怎么做?

谢谢.

解决方法

您可以尝试以下模式:

>尝试阅读图像(如果成功,则完成)
>尝试使用写锁定创建图像
>仅在“文件在使用异常”中,小延迟(毫秒)
>返回步骤1(重试)

使延迟非常小,只比创建图像所需的时间稍微大一点.
实施重试限制,最多3次左右.

这将允许您使用现有的(文件)锁定机制

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读