多请求PDF转换时遇No office manager available超时问题求助
解决JODConverter批量PDF转换时「No office manager available after 30000 millisec」异常
你之前调整的taskExecutionTimeout是控制单个转换任务的执行时长,但这个错误的本质是等待获取Office管理器实例的超时(默认等待时长30秒),所以改任务执行超时根本没用。
以下是正确的解决方案:
1. 配置文件方式(YAML)
修改配置时要调整的是task-queue-timeout,这才是控制等待获取管理器的超时时间:
jodconverter: local: enabled: true task-queue-timeout: 120000 # 设置等待获取管理器的超时为120秒 task-execution-timeout: 120000 # 任务执行超时可按需保留调整
2. 代码构建方式
同样要设置taskQueueTimeout参数,而不是只改任务执行超时:
LocalOfficeManager.builder() .taskQueueTimeout(120000L) // 关键:设置等待队列超时(获取管理器的等待时间) .taskExecutionTimeout(120000L) .build();
额外优化建议
- 增加Office进程的最大任务数,避免并发请求耗尽资源:
配置文件添加max-tasks-per-process: 10(根据服务器性能调整);代码里添加.maxTasksPerProcess(10) - 检查OpenOffice/LibreOffice进程状态,排查是否有内存泄漏导致进程挂死
- 批量转换时控制并发请求数,不要一次性发起大量请求,防止队列阻塞
内容的提问来源于stack exchange,提问作者Suryanarayan Subudhi
相关产品推荐
相关产品推荐

