2

我有一个长时间运行的任务(很多小时),它是通过 Intranet 界面上的网页启动的。这是一个 ASP.Net 3.5 项目。当然,我可以延长脚本超时并让页面运行几个小时,但我不认为这是一个干净的解决方案。我在某处读到长时间运行的任务不应该是 Web 应用程序池的子项,因为它可以随时被 IIS 重置。为了寻找解决方案,我阅读了一些有关 Quartz.Net 的信息,但大多数示例都在谈论重复性工作。我想知道它是否也适用于用户要求时只运行一次的任务。还是有其他更好的解决方案?

此外,如果 Quartz.Net 是一个不错的选择,它应该作为 Windows 服务运行,还是应该由 ASP.Net 网站使用 Global.asax 生成?

4

1 回答 1

1

Quartz.net 在这种情况下工作得很好。你在 Quartz.net 上安排一个一次性的工作,让它运行多久就运行多久。在工作中,这正是我们开展许多工作的方式。

不过,您应该将 Quartz.Net 设置为 Windows 服务。IIS 回收 Web 应用程序,如果您在 Web 应用程序中运行 Quartz.net,它将与您的 Web 应用程序一起被 IIS 回收。

于 2013-04-09T11:58:07.323 回答