我有许多任务(记录在具有预定时间的数据库中)需要在不同日期的不同时间随机运行,并且每个任务都需要很长时间才能处理。
每周都会有新的更多任务出现。在准确的时间自动执行所有这些任务的最佳解决方案是什么?
我有许多任务(记录在具有预定时间的数据库中)需要在不同日期的不同时间随机运行,并且每个任务都需要很长时间才能处理。
每周都会有新的更多任务出现。在准确的时间自动执行所有这些任务的最佳解决方案是什么?
正如 Phil Haack 在他的博客文章中解释的那样,使用 ASP.NET 应用程序来执行重复的后台任务通常是一个坏主意。
因此,您可以编写一个控制台应用程序来查询您的数据库并执行必要的任务。然后只需使用 Windows 调度程序以所需的时间间隔执行此应用程序。作为替代方案,您可以在 ASP.NET 应用程序中实现该任务,并让控制台应用程序简单地向相应的控制器操作触发 HTTP 请求。
如果您无权访问您的服务器并且不能托管除 ASP.NET 应用程序之外的任何东西,那么您应该完全了解使用这种方法的后果(如上述文章中所述)。因此,一种方法是使用Quartz.NET之类的库来安排定期执行某些代码。