使用 Web 应用程序管理定时事件的首选方法是什么?

Bla*_*hor 2 c# asp.net iis-7 timer

我正在设计一个 ASP.NET 4.0 Web 应用程序,管理员可以在其中创建一个有期限的拍卖。过期时间将存储在数据库中。考虑到应用程序实例在预定时间可能尚未运行,如何确保拍卖在预定时间结束?该应用程序将由 IIS7 托管。我正在考虑 Windows 服务,但我想知道还有哪些其他选择。

Cas*_*jne 5

您可以在此处从两种方案中进行选择:

  • 懒于网络应用程序
  • 主动提供服务

懒惰场景

除非您必须立即与拍卖获胜者进行交互,否则您可以等到应用程序启动,然后让应用程序确定是否有任何过期的拍卖。立即收集并进行相应处理。

活跃场景

创建一个从数据库中选择第一个到期拍卖的服务。存储该日期时间并让服务休眠直到拍卖到期。在该日期时间启动服务并处理即将到期的拍卖。然后让服务寻找下一个到期的拍卖并让服务再次休眠。等等……我认为Windows Workflow Foundation包含此实践的所有工具和要求。

介于两者之间的东西

激活一个调度程序,每小时/半小时/15 分钟唤醒您的网络应用程序并做一些懒惰的事情。使用像HostMonitor这样的调度程序。