我们最近在我们的软件中添加了一项新功能 - 为上传和存储在服务器上的文档生成预览。我们通过以下方式做到了这一点:
- 用户上传文件;
- 用户打开文档信息卡后,将发布最近上传文档的预览(有关预览生成的信息存储在 db 表中);
- 我们的服务每 30 秒启动一次,检查预览表并启动预览生成程序。
我现在面临的问题是——用于生成预览的新代码使用了我们的一些旧代码,它有时会“冻结”Word 或 Excel 进程。预览的生成停止并且所有以下预览都处于“待定”模式,直到我终止 Word、Excel 进程(我们测试 MS Office 文档的预览)。在我终止进程后,预览生成继续。
我正在考虑在我们的服务中实现计时器,这样如果服务在预览生成开始后等待超过 1 分钟,它应该终止该进程并继续为其他文档生成预览。
我遇到的主要问题是,我无法像处理其他文档那样将对遗留代码的调用“移动”到分离进程(例如,我们已经通过 Process'es 使用 GhostScript 实现了 .ps 文件生成)。
关于如何“处理”对遗留代码的调用的任何想法?