我听说 Jeff 和 Joel 在播客上讨论了他们所谓的“心跳”,它本质上是在创建类似于在网站中运行 Windows 服务的东西。我希望能更深入地了解如何实施这样的事情。以前有没有人实现过这样的东西,你用它做什么?
谢谢!
我在多个地方找到了答案。我采用了 Jeff Attwood 为 stackoverlow 所做的工作以及Code Project 文章,并制作了一些完全可重用且能够使用 IoC 工具轻松连接的东西。我已经在这里发布了完整的细节
基本上,您使用网页来启动流程......但是您限制了流程的运行频率。
像这样的东西:
TimeSpan timeSinceLastRun = DateTime.Now.Subtract(lastRunTime);
if(timeSinceLastRun > interval) {
RunCustomProcess();
lastRunTime = DateTime.Now;
}
这样,您只需确保偶尔有人(或某些程序)访问该页面。多次点击该页面不会对您的流程产生不利影响。
您可以使用 ASP.NET 健康监控并将某些东西连接到WebHeartbeatEvent。
我们正在客户端和服务器之间实现类似的东西,因为我们有 Windows 窗体客户端,而 WCF 服务充当服务器。
心跳的目的是从服务器端说“我还活着”。
检查此链接以了解WCF 中的 Heartbeat介绍