LIbreOffice - 如果我发送很多请求,转换为 pdf 无头停止工作
LIbreOffice - Convert to pdf headless stops working if I send many requests
我正在使用 LibreOffice 7.1.3.2 10(Build:2) 将 excel(.xlsx) 文件转换为 ubuntu 服务器上的 pdf 文件。我在服务器上只有 CLI 版本的 libre office。我正在使用 node.js 并执行以下命令进行转换:
libreoffice --headless --convert-to pdf 119.xlsx --outdir /home/pdfs/19
excel 到 pdf 的转换有效,pdf 已成功创建。但是,如果我多次发送此转换请求(例如,5 分钟内发送 20 个请求),则不会创建 pdf。我也没有从库中得到任何错误。
怎么会这样?它可能与缓存或临时文件夹有关吗?
更新:
我使用“top”检查了服务器上的进程 运行,发现一个 soffice 进程消耗了 ~100% 的 CPU。也许进程遇到错误时正在重试?
所以我试着在出错的情况下杀掉进程,但进程仍然存在。只要这个过程还在运行,其他的pdf转换就不行了。然后在一段时间后(大约几个小时)此过程停止,然后 pdf 转换才重新开始工作。
const child = exec(command, { timeout: 10000, maxBuffer: 20 * 1024 }, (error: any, stdout: any, stderr: any) => {
if (error) {
console.log(`error: ${error.message}`);
console.log(child.pid);
child.kill();
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
resolve();
}
console.log(`stdout: ${stdout}`);
resolve();
});
根据 LibreOffice 的 Bugzilla 报告了一个类似的错误(请参阅 https://bugs.documentfoundation.org/show_bug.cgi?id=124798)并且它似乎已被更新的版本修复:
Repro 6.2. No repro 6.3 and 7.2+. Closing.
所以我建议升级到更新的版本。
我正在使用 LibreOffice 7.1.3.2 10(Build:2) 将 excel(.xlsx) 文件转换为 ubuntu 服务器上的 pdf 文件。我在服务器上只有 CLI 版本的 libre office。我正在使用 node.js 并执行以下命令进行转换:
libreoffice --headless --convert-to pdf 119.xlsx --outdir /home/pdfs/19
excel 到 pdf 的转换有效,pdf 已成功创建。但是,如果我多次发送此转换请求(例如,5 分钟内发送 20 个请求),则不会创建 pdf。我也没有从库中得到任何错误。
怎么会这样?它可能与缓存或临时文件夹有关吗?
更新:
我使用“top”检查了服务器上的进程 运行,发现一个 soffice 进程消耗了 ~100% 的 CPU。也许进程遇到错误时正在重试?
所以我试着在出错的情况下杀掉进程,但进程仍然存在。只要这个过程还在运行,其他的pdf转换就不行了。然后在一段时间后(大约几个小时)此过程停止,然后 pdf 转换才重新开始工作。
const child = exec(command, { timeout: 10000, maxBuffer: 20 * 1024 }, (error: any, stdout: any, stderr: any) => {
if (error) {
console.log(`error: ${error.message}`);
console.log(child.pid);
child.kill();
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
resolve();
}
console.log(`stdout: ${stdout}`);
resolve();
});
根据 LibreOffice 的 Bugzilla 报告了一个类似的错误(请参阅 https://bugs.documentfoundation.org/show_bug.cgi?id=124798)并且它似乎已被更新的版本修复:
Repro 6.2. No repro 6.3 and 7.2+. Closing.
所以我建议升级到更新的版本。