gpt4 book ai didi

c# - Webservice/WCF(定时器更新引擎)

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:58 25 4
gpt4 key购买 nike

我正在尝试构建 (csharp) 一个网络服务/WCF 引擎,它可以执行两个操作:

  1. 有一个计时器(线程),每 10-10 分钟运行一次,请求一些信息(与其他服务器连接以获取一些信息 - 状态)以在一个数据库中更新。 (这必须是自动的,没有人为操作可用)。这个想法是网络服务自动(10x10 分钟)用最近的信息状态更新数据库。

  2. 一种从一个数据库获取一些信息的服务方法。 (这是一种在有人请求时提供信息的简单方法)。此方法将负责从数据库中选择状态信息。

问题出在第1步,因为第2步很简单。

任何人都可以通过想法或一些代码帮助我如何进行第 1 步。这里应该使用什么模式?

最佳答案

因为它是一个网络应用程序(例如,VS2010 中的“WCF 服务应用程序”项目类型),您可以挂接到应用程序事件。

默认情况下,该项目模板类型不会创建 Global.asax,因此您需要“添加新项”并选择“全局应用程序类”(如果您已经有一个 Global.asax,则它不可用。 asax,FWIW)。

然后你可以只使用应用程序上的开始和结束事件来启动和停止你的计时器,比如:

public class Global : System.Web.HttpApplication
{
private static readonly TimeSpan UpdateEngineTimerFrequency = TimeSpan.FromMinutes(10);
private Timer UpdateEngineTimer { get; set; }

private void MyTimerAction(object state)
{
// do engine work here - call other servers, bake cookies, etc.
}

protected void Application_Start(object sender, EventArgs e)
{
this.UpdateEngineTimer = new Timer(MyTimerAction,
null, /* or whatever state object you need to pass */
UpdateEngineTimerFrequency,
UpdateEngineTimerFrequency);
}


protected void Application_End(object sender, EventArgs e)
{
this.UpdateEngineTimer.Dispose();
}
}

关于c# - Webservice/WCF(定时器更新引擎),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3447266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com