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.

所以我建议升级到更新的版本。