运行计划任务的最佳方式

今天,我们已经构建了一个控制台应用程序,用于运行ASP.NET网站的计划任务。 但我认为这种方法有点容易出错,难以维护。 你如何执行你的计划任务(在Windows / IIS / ASP.NET环境中)

更新:

任务示例:

  • 从数据库中的电子邮件队列发送电子邮件
  • 从数据库中删除过时的对象
  • 从Google AdWords中检索统计信息并填写数据库中的表格。

  • 我所有的网站任务(需要安排)都保存在网站中,并从特殊页面中调用。 然后我写了一个简单的Windows服务,每隔一段时间就会调用一次这个页面 一旦页面运行,它会返回一个值。 如果我知道还有更多工作需要完成,我马上再次运行该页面,否则我会在一段时间内运行它。 这对我来说非常合适,并且使用Web代码保留了我所有的任务逻辑。 在编写简单的Windows服务之前,我使用Windows调度程序每x分钟调用一次该页面。

    另一种方便的方法是使用Pingdom等监控服务。 将他们的http检查指向运行你的服务代码的页面。 让页面返回结果,然后可以用它来触发Pingdom在某些事情不正确时发送警报消息。


    Jeff Atwood的Stackoverflow技术是我遇到的最简单的方法。 它依靠“缓存项删除”回调机制构建到ASP.NET的缓存系统中

    更新:Stackoverflow超出了这种方法。 它只在网站运行时才起作用,但对于许多人来说这是一种非常简单的技术。

    也检查出Quartz.NET


    创建一个自定义的Windows服务。

    我将一些任务关键任务设置为预定的控制台应用程序,并发现它们很难维护。 我创建了一个带有'心跳'的Windows服务,每隔几分钟就会检查我的数据库中的时间表。 它制定得非常好。

    话虽如此,我仍然使用预定的控制台应用程序来处理大多数非关键性维护任务。 如果没有损坏,请不要修复它。

    链接地址: http://www.djcxy.com/p/6627.html

    上一篇: Best way to run scheduled tasks

    下一篇: Eclipselink problem in a javase project