Nodejs开发的时候遇到的一个异步问题
我的项目需要将多个excel文件生成
然后打包,在发现有excel文件缺失后
我排查确定打包文件的函数没有问题
把目光锁定在文件名的生成上后发现
我总是认为timestmp用来做文件名可以保证文件名不会重复
但其实在异步操作中
由于多个线程是并发执行的
他们某一时刻的timestmp可能是相同的
这就会导致excel文件名生成可能是相同的
从而覆盖之前生成的excel文件
导致excel文件的缺失
后面使用md5对里面的唯一值_id加密后用来拼接文件名
可以正常生成excel文件了
发现确实有timestmp相同的情况出现
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 蒲公英!