image-20230831212941498

我的项目需要将多个excel文件生成

然后打包,在发现有excel文件缺失后

我排查确定打包文件的函数没有问题

把目光锁定在文件名的生成上后发现

我总是认为timestmp用来做文件名可以保证文件名不会重复

但其实在异步操作中

由于多个线程是并发执行的

他们某一时刻的timestmp可能是相同的

这就会导致excel文件名生成可能是相同的

从而覆盖之前生成的excel文件

导致excel文件的缺失

后面使用md5对里面的唯一值_id加密后用来拼接文件名

image-20230831213555359

可以正常生成excel文件了

发现确实有timestmp相同的情况出现