使用GAE Cron Job监测网站运行

偶的博客本身使用的是SiteUptime,但由于是免费账户最短间隔时间是30分钟,统计的数据会跟实际误差很大。正好GAE Cron Job可以用于定时任务,而且GAE可以使用GMAIL发送邮件,于是一个偶自制的山寨版监测系统就上线了,监测频率设置为每5分钟执行一次。
原理很简单,请求首页,如果返回200状态码就认为正常,其余则认为有故障,此时调用邮件发送模块发送邮件通知。这部分代码如下,完整代码不多,贴出也意义不大,请下载浏览。

1
2
3
4
5
6
7
8
9
10
class UptimeCheck(webapp.RequestHandler):
  def get(self):
    url = 'http://ioio.name/'
    result = urlfetch.fetch(url)
    if result.status_code == 200:
      #self.response.out.write(result.content)
      self.response.out.write('Site Online Now:%s'%time.ctime())
    else:
      SendNoticeMail(result.status_code)
      self.response.out.write('Site Offline Now:%s'%time.ctime())

下载 [下载没有找到]
这只是一个单用户版本,将需要监测的URL和邮件发送接收地址改成你自己的后上传至你的GAE即可使用。
-EOF-

《使用GAE Cron Job监测网站运行》有3个想法

  1. hello, 因为我也在写一个后台运行的GAE网页。
    但刚起步,什么都不熟悉。
    按照你的代码,写到了Cron里。但我在管理员查看Cron工作状态时,如下显示:
    Cron Job Schedule/Last Run/Last Status (All times are UTC)
    /tasks/uptime every 5 minutes (UTC)
    every 5 minutes job 2012/06/04 12:55:32 on time Failed

    显示失败,而且我用于查询的网站已关闭,但没有邮件报错。
    请帮忙解决……..

评论已关闭。