我有一个长时间运行的任务(许多小时),它是通过内部网接口上的网页启动的。这是ASP。Net 3.5项目。当然,我可以延长脚本超时时间,让页面运行几个小时,但我不认为这是一个干净的解决方案。我在某个地方读到,长时间运行的任务不应该是Web应用程序池的孩子,因为它可以在任何时候被IIS重置。为了寻找解决方案,我读了一些关于Quartz的文章。,但大多数例子都是关于重复性的工作。我想知道它是否也适用于当用户请求时应该只运行一次的任务。还是有其他更好的解决方案?
同样,如果石英。Net是一种很好的方式,它应该作为Windows服务运行,或者应该由asp.net派生。Net网站使用Global.asax?
Quartz.net在这种情况下工作得很好。您在Quartz.net上安排一个一次性作业,并让它运行所需的时间。在工作中,这正是我们许多工作的运行方式。
您应该设置Quartz。Net作为windows服务。IIS回收web应用程序,如果你在你的web应用程序中运行Quartz.net,它将与你的web应用程序一起被IIS回收。