在Web应用程序中每隔一定时间轮询一次

时间:2013-07-01 17:59:33

标签: c# asp.net asp.net-mvc

如何在Web应用程序内每2分钟轮询一次?我正在寻找类似于winforms中的计时器的东西。

poller类将是应用程序中的单例(我使用容器处理生命周期),我也知道webapp中对象的生命周期。

5 个答案:

答案 0 :(得分:6)

Web应用程序代码无意无限期地连续运行。 IIS可以基于各种条件每小时多次关闭或回收它。

更好的方法是编写Windows服务或使用计划任务。

答案 1 :(得分:0)

有很多选择。 SignalR是一个很好的框架,可以解决轮询问题,根据浏览器提供的支持,它可以优雅地从WebSockets回退到Long Polling。

答案 2 :(得分:0)

JS中有2个选项

// easy
function run() {
   // do stuff
}
setInterval(run, 120000)

// safer
function run() {
   // do stuff
  setTimout(run, 120000);
}
setTimout(run, 120000);

http://javascript.info/tutorial/settimeout-setinterval

答案 3 :(得分:0)

将meta http-equiv刷新设置为.aspx页面中所需的秒数,页面将按照定义自动刷新,您可以更新,例如,Label.Text = DateTime.Now.Tostring(),以显示时间。但如上所述,做到这一点并不总是很好的做法。对于部分渲染,您可以依赖AJAX更新面板

答案 4 :(得分:0)

WebBackgrounder如果您有小规模需求(这很容易设置//最小基础设施)。

Windows服务/ Worker Role / Console App (that is executed as a periodic task)用于认真工作。