服务器间并发下载技巧

来源:互联网 发布:知乎45个神回复 编辑:程序博客网 时间:2024/05/20 15:59

一个需求,点击页面后去下载文件 ,然后使用 ,多个用户点击下载同一个文件使用 。

分析下,需求的要求就是有人去下载了,就不再下载,等待下载完成 ,直接读取使用 。

1。问题难点 ,这么多人 ,谁先下载 ,本地有文件了,但是是否真的下载好了,还是下载了一半。

2.  第一个人先读取本地文件的同名,但是后缀为 .ok的文件 (此为自己创建的空文件,下载完成后自己创建,如果没有则证明没有下载好此文件,有的话说明文件存在,直接使用即可)

3.   如果没有  .ok 文件 第一个人会先读取  本地缓存 ,是否有人在下载了,如果没有,则加锁,并去下载 。 下载完成后,创建同名.ok 文件 

4.  第二个人去看 没有 .ok 去读取缓存 ,有人下载了,便进入等待。,如果超时则返回异常

5. 重点,任何的异常,都要移除缓存中的锁,防止下载失败,但是无人能下载 。 





原创粉丝点击