在Google App Engine上移植基本脚本

时间:2015-09-22 17:00:56

标签: python google-app-engine cron

我一周前遇到了谷歌应用引擎,并想玩 它有点。我写了一个虚拟应用程序,它检查一个URL并基于 如果站点“向上”或“向下”

,它将记录到文件的返回码

我想将其部署到app引擎并安排cron作业(例如每隔一分钟)。 我遇到了这个example。我完全理解app.yaml文件,但我不确定 'url'在cron.yaml文件中。它的目的是什么?它可以在文件中跳过吗?

Morover示例使用webapp2模块。我将代码包装在该模块中吗?

以下代码:

import requests
import logging

logger = logging.getLogger('testapp')
hdlr = logging.FileHandler('/Users/me/Desktop/testlog.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr) 
logger.setLevel(logging.INFO)

try:
    r = requests.head("http://www.redcafe.com")
    code = (r.status_code)
except requests.ConnectionError:
    logger.error('URL Error')

if code == 200:
    logger.info('Up and running')
else:
    logger.error('Cant find website')

1 个答案:

答案 0 :(得分:1)

根据cron.yaml doc

  

url 字段指定应用程序中的URL   由Cron服务部门调用。

基本上,您的应用程序将注册该URL的处理程序,该处理程序将在GAE cron服务请求时调用。

你可能想花一些时间熟悉至少:

在GAE中使用请求库可能会非常棘手:Can Python Requests library be used on Google App Engine? 您可能需要查看GAE socketsURL fetch服务作为替代方案。