我听说过Jeff和Joel在播客中讨论了他们所谓的“心跳”,它实质上是创造类似于运行Windows服务在一个网站。我希望能够更深入地了解如何实现这样的事情。有没有人实施过这样的事情,你有什么用途?在Asp.Net中创建“心跳”或Windows服务类功能
谢谢!
我听说过Jeff和Joel在播客中讨论了他们所谓的“心跳”,它实质上是创造类似于运行Windows服务在一个网站。我希望能够更深入地了解如何实现这样的事情。有没有人实施过这样的事情,你有什么用途?在Asp.Net中创建“心跳”或Windows服务类功能
谢谢!
我在地点组合中找到了答案。我拿出了Jeff Attwood为stackoverlow here以及Code Project article所做的工作,并且创建了一些完全可重用且可以使用IoC工具轻松连接的东西。我已经发布了详细信息here
基本上你使用一个网页揭开序幕的过程...但你把过程可以运行的频率上限。
事情是这样的:
TimeSpan timeSinceLastRun = DateTime.Now.Subtract(lastRunTime);
if(timeSinceLastRun > interval) {
RunCustomProcess();
lastRunTime = DateTime.Now;
}
这样你只需要确保偶尔有人(或程序)访问该网页。多次点击页面不会对您的过程产生不利影响。
是储存像lastruntime这样的变量的理想地点...是global.asa唯一的地方吗? – 2009-06-24 14:30:10
可能位于数据库中,或者可能仅仅来自HttpApplication状态。 – 2009-06-26 03:35:01
您可以使用ASP.NET运行状况监视并将某些东西连接到WebHeartbeatEvent。
死链接已死。 – Gusdor 2015-11-27 16:44:53