Apache POI 在多线程中的 tmp 目录上获取 java.io.IOException

过氧化物

我有一个 Java 应用程序,它收到创建 XLSX 文件的请求。
此应用程序是多线程的,这意味着 5 个用户可以同时运行一个报告。
我的问题是,当报告很大并且 5 个用户一起创建报告时,我收到此消息,java.io.IOException: Could not create temporary directory '这可能是因为 5 个线程之一删除了 java.tmp.dir 而其他 4 个线程失败。

我该如何解决?
我建议的解决方案之一是给每个线程一个不同的 java.io.tmpdir,这是可以做到的吗?

加蒂萨胡

一种解决方案是在创建临时目录时,线程应附加一些前缀以唯一标识。因此不会对同一文件夹进行并发修改。

在实现时,您必须考虑可以同时处理多少个请求。您不能创建很多目录。

一种解决方案是使用线程池和队列来保存请求,如果请求的数量超过了您的处理能力。

或者如果内容相似,那么您可以创建一个模板并动态更改一些数据。所以只有克隆才能工作

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Apache POI:用Java写入excel:打开Workbook,java.io.IOException:无法写入数据,文档似乎已经关闭

Ansible中的Git模块在tmp目录上获取权限被拒绝

通过Apache POI和Java Web应用程序读取Excel,但显示错误为“ java.io.IOException:org / apache / commons / compress / archivers / zip / ZipFile”

异常线程 “main” org.apache.hadoop.ipc.RemoteException(java.io.IOException的)Hadoop的3.1.3

Spark-Java IOException:无法在/ tmp / blockmgr *中创建本地目录

MapReduce中的java.io.IOException

Rabbit mq错误:在线程“主”中获取异常java.io.IOException原因由:com.rabbitmq.client.ShutdownSignalException

java.io.IOException:dfs.datanode.data.dir中的所有目录均无效

失败,但发生异常java.io.IOException:org.apache.avro.AvroTypeException:发现的很长,期望在配置单元中实现联合

使用阻塞IO的多线程破坏Java中的文件

file.createNewFile()给出java.io.IOException:不是目录

从错误响应中获取数据时出现 java.io.IOException

java.io.IOException java

线程“主”中的异常java.io.IOException:无法初始化群集

(PySpark)路径错误:线程“ main”中的异常java.io.ioexception无法运行程序“ python”

学习Apache POI for Java

Java Apache POI

硒 + Apache POI + Java

写入XLS文件时出错-Apache POI多线程

Java中,产生的原因:产生java.io.IOException:错误= 2,没有这样的文件或目录

Apache Poi:获取 DOC 文档中的页数

java.io.IOException:java.io.FileNotFoundException :(无此类文件或目录)

在hbase中无法识别目录hdfs:// f / test / apps / hbase / data / lib的fs中,忽略了java.io.IOException

Apache PDFBox合并错误-java.io.IOException:预告片中缺少根对象规范

org.apache.catalina.connector.ClientAbortException:java.io.IOException:APR错误:-32

获取java.io.IOException:客户端服务器Java套接字程序中的流处于活动状态

如何使用Apache POI获取Java中Excel工作表各行的最后一列值

如何在Java Apache POI中获取Sheet对象的位置/索引

如何使用Java Apache POI库从XLSX文件中的特定单元格获取值