1
我正在写一个用户可以访问图像的python服务(pyamf)。所有图像都存储在中央服务器上。 python服务将在有网络访问服务器的卫星机器上运行。该服务应该如下工作:Python服务文件缓存Apache竞争条件
- 本地检查以查看文件是否存在,如果存在,请使用它。
- 本地检查是否正在从服务器传输文件(file.part存在且大小正在更改)。如果是这样,等待下载完成,然后使用文件。
- 如果文件不存在且文件未被下载,请通过urlretrieve下载文件。
问题在于Apache的多线程。线程同时到达文件存在检查,因此他们都认为文件需要下载。不用说,这不好。
什么是正确的方式来处理这种竞争条件?
谢谢!