【问题标题】:scheduler for Web-applicationWeb 应用程序的调度程序
【发布时间】:2011-07-26 05:42:51
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net web-applications windows-services


    【解决方案1】:

    类似的东西,使用计时器:

    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...
    }
    

    【讨论】:

    • 我承认你更明确的回答。
    • @brendan:我收到错误无法在第 4 行将类型“void”隐式转换为“System.Timers.ElapsedEventHandler”
    • 对,抱歉,已修复 - Elapsed 必须是新的 ElapsedEvenHandler
    【解决方案2】:

    【讨论】:

    • 其实是的,但是来自windows服务
    • 查看@brendan 对 Windows 服务示例的回答
    • 这可能是我的网络应用程序的一部分吗?请指导
    【解决方案3】:

    看看 Quartz.NET。

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

    当我需要某种类型的调度时,我会使用它。

    【讨论】:

    • 不确定这是否适用。它可能会减少/消除对 Windows 服务的需求,但我怀疑它是否可用于触发 Windows 服务本身内部的任何内容。
    • Quartz.net 调度程序只是一个库,它可以轻松运行作业,作业是应用程序或 dll 中的一段代码。该时间表具有高级计时功能,例如在该月的第一天从中午 12 点到早上 6 点运行,以及其他不错的功能。这篇文章可能有点矫枉过正,但石英的一些功能可能会有所帮助。
    • 听起来很整洁。我想我应该在发表评论之前完成我的研究,只是假设它更像是一个“系统”而不是提供的报价中的库。
    • 一切都好,是的,有时你应该看看它真的很棒的图书馆。
    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多