我有很多任务(按预定时间记录在数据库中)需要在不同日期的不同时间随机运行,并且每个任务都需要很长时间来处理。
每周都会有更多新任务出现。在准确的时间自动执行所有这些任务的最佳解决方案是什么?
最佳答案
正如 Phil Haack 在他的 blog post 中解释的那样,使用 ASP.NET 应用程序执行重复的后台任务通常是一个坏主意。 .
因此,您可以编写一个控制台应用程序来查询数据库并执行必要的任务。然后只需使用 Windows Scheduler 按所需的时间间隔执行该应用程序即可。作为替代方案,您可以在 ASP.NET 应用程序中实现该任务,并让控制台应用程序仅向相应的 Controller 操作触发 HTTP 请求。
如果您无权访问您的服务器并且无法托管除 ASP.NET 应用程序之外的任何其他内容,那么您应该完全了解采用此方法的后果(如上述文章中所述)。因此,一种方法是使用诸如 Quartz.NET 之类的库。安排定期执行某些代码。
关于C# 在随机时间安排任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676716/