C# Web应用程序调度程序

C# Web应用程序调度程序,c#,asp.net,web-applications,windows-services,C#,Asp.net,Web Applications,Windows Services,我将编写一个Windows服务,它将定期调用我的Web应用程序的一个类。 实现它的可能方法有哪些。a?类似于此,使用计时器: protected override void OnStart(string[] args) { var timer = new System.Timers.Timer(); timer.Elapsed += new ElapsedEventHandler(DoSomething); //do something ever

我将编写一个Windows服务,它将定期调用我的Web应用程序的一个类。
实现它的可能方法有哪些。

a?

类似于此,使用计时器:

protected override void OnStart(string[] args)
{ 
        var timer = new System.Timers.Timer();
        timer.Elapsed += new ElapsedEventHandler(DoSomething);
        //do something every 30 seconds
        timer.Interval = TimeSpan.FromSeconds(30).TotalMilliseconds; 
        timer.Start();
}

private void DoSomething(object sender, ElapsedEventArgs e)
{
    //Do your timed event here...
}

看看Quartz.NET

“Quartz.NET是一个功能齐全的开源作业调度系统,可以从最小的应用程序到大型企业系统使用。”


当我需要某种类型的日程安排时,我会使用它。

实际上是的,但从windows服务看@brendan对windows服务示例的回答这可能是我的web应用程序的一部分吗?请注意,我同意你更明确的回答。@brendan:我遇到了一个错误,无法将第4行上的类型“void”隐式转换为“System.Timers.ElapsedEventHandler”。对了,抱歉,修复了这个问题-经过的时间必须是新的elapsedevenhandler。不确定这是否适用。它可能会减少/消除对windows服务的需求,但我怀疑它是否可以用于触发windows服务本身内部的任何内容。Quartz.net调度程序只是一个库,可以方便地运行作业,作业是应用程序或dll中的一段代码。该时间表具有高级计时功能,如在当月的第一天从中午12点到早上6点跑步,以及其他出色的功能。这篇文章可能有点过头了,但石英的一些特性可能会很有用。听起来不错。我想我应该在评论之前做一下研究,只是假设它更像是一个“系统”,而不是引用中的一个库。很好,是的,你应该看看它有时真的很棒的库。