服务计时器

时间:2009-07-13 14:03:44

标签: c# process timer server-side

我们最近为我们的软件添加了一项新功能 - 为上传并存储在服务器上的文档预览生成。我们通过以下方式做到了这一点:

  1. 用户上传文档;
  2. 用户打开文档信息卡后,会发布最近上传文档的预览(有关预览生成的信息存储在db表中);
  3. 我们的服务每30秒启动一次,查看预览表并启动预览生成程序。
  4. 我现在面临的问题是 - 生成预览的新代码使用了一些遗留代码,有时会“冻结”Word或Excel流程。预览停止和所有以下预览的生成保持“待定”模式,直到我终止Word,Excel进程(我们测试MS Office文档的预览)。在我终止进程后,继续预览生成。

    我正在考虑将定时器应用到我们的服务中,这样如果服务在预览生成开始后的1分钟内等待更多时间,它应该终止该过程并继续生成其他文档的预览。

    我遇到的主要问题是,我无法将对遗留代码的调用“移动”为单独的进程,就像我们对其他文档所做的那样(例如,我们已经通过Process'es实现了GhostScript生成.ps文件)。

    关于如何“处理”遗留代码调用的任何想法?

1 个答案:

答案 0 :(得分:2)

您可以在第一个流程上制作第二个流程 watchdog 吗?

或者你可以让第一个进程自动重启,并有第二个计时器线程监视它然后杀死它自己的进程吗?