如何每30分钟申请一次页面

时间:2009-10-02 01:00:39

标签: asp.net timer

这是关于最佳做法的问题。我希望得到其他开发者的一些建议。

我需要在我的网站上至少每30分钟要求一次页面。我想要实现的是一个运行Web应用程序中的代码的计时器。

有些网站会检查您的网站是否已启动,但实际上这些网站并不可靠。

期待您的想法。

7 个答案:

答案 0 :(得分:3)

这个问题有两个部分:

  1. 您如何申请一次页面?
  2. 如何定期运行代码?
  3. 一旦你将其分解,编写一个可以“定期”运行“请求页面一次”代码的控制台或Windows窗体应用程序变得很简单。

答案 1 :(得分:3)

第1步

编写.Net控制台应用程序,向您要点击的页面发出请求。

第2步

使用Windows Scheduler每30分钟执行一次控制台应用程序(即.exe)。

答案 2 :(得分:2)

Reload Every

上添加了一个firefox

还可以将wget与cron或计划任务一起使用

您还可以在页面加载事件中编写一些代码,在其中检查是否>自上次点击以来已经过了30分钟,然后运行了一些代码。

答案 3 :(得分:1)

Stackoverflow执行此操作...请参阅此处的博客条目: http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

基本上,有一个在缓存对象到期时调用的回调函数。这可以运行您想要的任何代码,如果您希望它加载页面,您可以使用HttpWebRequest执行此操作。但是,我想你只需要运行一些代码,所以你可以在函数中直接执行。

答案 4 :(得分:0)

首先,您可以使用Grease Monkey在网站中注入您的Timer功能并注入此代码:

<script language="JavaScript">
// CREDITS:
// Automatic Page Refresher by Peter Gehrig and Urs Dudli
// Permission given to use the script provided that this notice remains as is.
// Additional scripts can be found at http://www.24fun.com & http://www.designerwiz.com
// info@24fun.com
// 8/30/2001

// IMPORTANT: 
// If you add this script to a script-library or script-archive 
// you have to add a link to http://www.24fun.com on the webpage 
// where this script will be running.

////////////////////////////////////////////////////////////////////////////
// CONFIGURATION STARTS HERE

// Configure refresh interval (in seconds)
var refreshinterval=5

// Shall the coundown be displayed inside your status bar? Say "yes" or "no" below:
var displaycountdown="yes"

// CONFIGURATION ENDS HERE
////////////////////////////////////////////////////////////////////////////

// Do not edit the code below
var starttime
var nowtime
var reloadseconds=0
var secondssinceloaded=0

function starttime() {
    starttime=new Date()
    starttime=starttime.getTime()
    countdown()
}

function countdown() {
    nowtime= new Date()
    nowtime=nowtime.getTime()
    secondssinceloaded=(nowtime-starttime)/1000
    reloadseconds=Math.round(refreshinterval-secondssinceloaded)
    if (refreshinterval>=secondssinceloaded) {
        var timer=setTimeout("countdown()",1000)
        if (displaycountdown=="yes") {
            window.status="Page refreshing in "+reloadseconds+ " seconds"
        }
    }
    else {
        clearTimeout(timer)
        window.location.reload(true)
    } 
}
window.onload=starttime
</script>

答案 5 :(得分:0)

检查stackoverflow播客#15的记录,搜索heartbeat.asp

答案 6 :(得分:0)

看看Nagois,它可以每30秒点击一次你的网络应用。如果这是用于监控,我建议The Holy Trinity of Web 2.0 Application Monitoring