在谷歌应用程序引擎python中设置cron作业

Bri*_*Yee 4 python cron google-app-engine

我刚开始使用Google App Engine,所以我还在学习如何配置所有内容.我写了一个名为parsexml.py的脚本,我想每10分钟左右运行一次.这个文件在我的主目录中,与main.py,app.yaml等一起.据我所知,我需要创建一个新文件,cron.yaml,如下所示:

cron:
- description: scrape xml
  url: /
  schedule: every 10 minutes
Run Code Online (Sandbox Code Playgroud)

我不确定我需要在url字段中添加什么.我也不确定是否还需要其他东西.我是否需要更改我的app.yaml文件?在哪里指定parsexml.py文件的名称?

bos*_*ter 9

布赖恩

您需要更新您的文件app.yamlcron.yaml文件.在其中每个中,您都需要指定脚本运行的路径.

app.yaml:

handlers:
- url: /path/to/cron
  script: parsexml.py
Run Code Online (Sandbox Code Playgroud)

或者如果你有一个捕获所有处理程序,你将不需要更改它.例如:

handlers:
- url: /.*
  script: parsexml.py
Run Code Online (Sandbox Code Playgroud)

cron.yaml:

cron:
- description: scrape xml
  url: /path/to/cron
  schedule: every 10 minutes
Run Code Online (Sandbox Code Playgroud)

文档中,parsexml.py您需要指定一个处理程序/path/to/cron并使用WSGI处理程序注册它(或者您可以使用CGI):

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class ParseXMLHandler(webapp.RequestHandler):
    def get(self):
        # do something

application = webapp.WSGIApplication([('/path/to/cron', ParseXMLHandler)],
                                     debug=True)
if __name__ == '__main__':
    run_wsgi_app(application)
Run Code Online (Sandbox Code Playgroud)

:如果您使用Python 2.7运行时,你将要指定script: parsexml.application在那里application是处理请求的全局变量WSGI.