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

标签 c# asp.net iis-7 timer

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

最佳答案

您可以在此处从两种情况中进行选择:

  • 懒惰使用网络应用程序
  • 积极提供服务

惰性场景

除非您必须立即与拍卖的获胜者互动,否则您可以等到应用程序启动,然后让应用程序确定是否有任何已过期的拍卖。在那个时刻收集它们并相应地处理它们。

事件场景

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

介于两者之间

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

关于c# - 使用 Web 应用程序管理定时事件的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3815252/

相关文章:

asp.net - ApplicationPoolIdentity 权限和 UserPrincipal

c# - 很棒的 ASP.NET 和 C# 初学者教程

c# - 清空堆栈跟踪。可能的?

c# - 使用 Entity Framework 支持多个数据库服务器

javascript - 无法在 jQuery 打开的模态上添加背景属性

asp.net - 未经授权时如何将用户重定向到ASP.NET页?

iis - 在 WiX 中如何通过名称选择 IIS 网站?

c# - 从结果集中创建一个 xml 节点树,但使用 linq 或表达式组合重复的属性

c# - ToLocalTime() 中本地是如何确定的

asp.net - 如何在 IIS 7.0 中允许混合模式身份验证