在ASP.NET网站中动态创建计划任务

时间:2016-05-07 15:04:51

标签: c# asp.net asp.net-mvc scheduled-tasks

我需要一些关于在Web应用程序级别动态创建某种形式的计划任务的最佳方法的建议。计划任务将从外部API端点提取信息,以定期存储在数据库中,直到特定的结束时间。

通常,我会创建一个Windows服务,为我执行这项工作。遗憾的是,站点管理员可以创建多个任务来从外部API查询不同的条件。因此可能会有多个任务在运行。

我一直致力于实现在计时器上运行的后台工作线程。这是最好的方法吗?或者使用像HangfireQuartz.net这样的东西是更好的解决方案,以确保我的后台流程能够持续运行?

我不知道在Web应用程序中是否可行,以确保在特定的持续时间内可以持续运行任务。

1 个答案:

答案 0 :(得分:1)

我尝试使用HangfireQuartz.Net,在我看来,它们都非常适合调度任务。 Hangfire有一个很好的界面来管理计划任务,但由于我在IIS上发布应用程序后遇到了一些问题,我转而使用Quartz.Net,它与Keep Alive Service For IIS 6.0/7.5完美配合。因此,要使用Quartz.Net,您可以查看Scheduled Tasks In ASP.NET With Quartz.Net。另一方面,为了在应用程序池回收,IIS /应用程序重新启动等之后使已发布的应用程序处于活动状态,只需在发布应用程序的服务器上安装Keep Alive Service For IIS 6.0/7.5即可。有关这些问题的详细信息,请参阅以下页面中的答案:

希望这会有所帮助......