org.artofsolving.jodconverter.office.OfficeException: task did not complete within timeout
这个问题,有点可能是太大,也有可能是临时文件还存在,没有删除,后台进程过多
六月 08, 2017 2:21:33 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager <init>
INFO: ProcessManager implementation is PureJavaProcessManager
六月 08, 2017 2:21:33 下午 org.artofsolving.jodconverter.office.OfficeProcess prepareInstanceProfileDir
WARNING: profile dir 'C:\Windows\TEMP\.jodconverter_socket_host-127.0.0.1_port-2002' already exists; deleting
六月 08, 2017 2:21:33 下午 org.artofsolving.jodconverter.office.OfficeProcess deleteProfileDir
SEVERE: could not delete profileDir: Unable to delete file: C:\Windows\TEMP\.jodconverter_socket_host-127.0.0.1_port-2002\user\uno_packages\cache\uno_packages.pmap
六月 08, 2017 2:21:33 下午 org.artofsolving.jodconverter.office.OfficeProcess start
INFO: starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir 'C:\Windows\TEMP\.jodconverter_socket_host-127.0.0.1_port-2002'
六月 08, 2017 2:21:33 下午 org.artofsolving.jodconverter.office.OfficeProcess start
INFO: started process
六月 08, 2017 2:21:34 下午 org.artofsolving.jodconverter.office.OfficeConnection connect
INFO: connected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
org.artofsolving.jodconverter.office.OfficeException: task did not complete within timeout
看到这些你是不是就懂了问题的所在。
前台的频繁请求导致后台的资源没有释放,temp文件删除不了。这是个bug,你去手动删除进程,删除temp
弥补措施是
// config.setPortNumbers(port); //设置转换端口,默认为8100
// config.setTaskExecutionTimeout(1000 * 60 * 25L);//设置任务执行超时为25分钟
// config.setTaskQueueTimeout(1000 * 60 * 60 * 24L);//设置任务队列超时为24小时