我有一个 Java 应用程序,它收到创建 XLSX 文件的请求。
此应用程序是多线程的,这意味着 5 个用户可以同时运行一个报告。
我的问题是,当报告很大并且 5 个用户一起创建报告时,我收到此消息,java.io.IOException: Could not create temporary directory '
这可能是因为 5 个线程之一删除了 java.tmp.dir 而其他 4 个线程失败。
我该如何解决?
我建议的解决方案之一是给每个线程一个不同的 java.io.tmpdir,这是可以做到的吗?
一种解决方案是在创建临时目录时,线程应附加一些前缀以唯一标识。因此不会对同一文件夹进行并发修改。
在实现时,您必须考虑可以同时处理多少个请求。您不能创建很多目录。
一种解决方案是使用线程池和队列来保存请求,如果请求的数量超过了您的处理能力。
或者如果内容相似,那么您可以创建一个模板并动态更改一些数据。所以只有克隆才能工作
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句