5

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

cron:
- description: scrape xml
  url: /
  schedule: every 10 minutes

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

4

3 回答 3

9

布莱恩,

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

app.yaml

handlers:
- url: /path/to/cron
  script: parsexml.py

或者,如果您有一个 catch all 处理程序,则无需更改它。例如:

handlers:
- url: /.*
  script: parsexml.py

cron.yaml

cron:
- description: scrape xml
  url: /path/to/cron
  schedule: every 10 minutes

文档中,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)

注意:如果您使用的是 Python 2.7 运行时,您需要指定用于处理请求的全局 WSGI 变量script: parsexml.application在哪里。application

于 2012-05-01T14:46:29.800 回答
2

在 GAE 中,所有操作都是通过 URL 完成的。您不能只是将任意脚本作为 cron 运行:您需要使该脚本成为处理程序并为其提供 URL,就像项目中的任何其他视图一样。

因此,将 URL 映射到 app.yaml 中的脚本,编辑脚本以使其成为处理程序,然后在 cron.yaml 中使用该 URL。

于 2012-05-01T14:47:18.710 回答
0

该 url 用于为您的 cron 作业运行 py 脚本

基本上在你的 app.yaml

你有

app.yaml
handlers:
- url: /helloworld.py
  script: helloworld.py

在 cron.yaml 中

cron.yaml
- description: scrape xml
  url: /helloworld.py
  schedule: every 10 minutes

如果您希望 cron 运行 hello world,您必须将 url 设置为url: /helloworld.py

于 2012-05-01T14:45:17.727 回答