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