1

我正在尝试使用 cron 任务启动动态后端,但是在部署后,我在 cron 选项卡下看不到新的 cron 任务,而且在我的后端选项卡下也看不到任何后端实例。我究竟做错了什么?

编辑:现在 cron 作业运行正常(在我将计划更改为“每 1 分钟”之后。但是后端拒绝运行。cron 选项卡说on time Failed。也许我需要在我的 app.yaml 或类似的东西中定义一些处理程序?

EDIT2:使用 appcfg 更新后端列表后,我可以看到我在后端选项卡下定义的后端。现在我只需要等待,看看它是否有效(有人知道用浏览器向后端发出 get 请求的方法吗?我不想等待一个小时来看看它是否正在运行(cron 任务运行现在每小时)。

我的代码

我的 cron.yaml 文件:

cron:
- description: crawler backend activation
  url: /crawl
  target: crawler
  schedule: every minute

我的 backends.yaml 文件:

backends:
- name: crawler
  class: B1
  instances: 1
  start: crawler.application
  options: dynamic

我的后端处理程序 crawl.py:

import logging
import webapp2 as webapp

class Handler(webapp.RequestHandler):
    logging.debug('crawler started')



application = webapp.WSGIApplication([('/crawl', Handler)])
4

3 回答 3

2

尝试使用这种 cron 格式:

schedule: every 1 minutes

注意:如果你每分钟调用一次动态后端,它永远不会关闭,因为 AFAIK 关闭延迟是 15 分钟。在这种情况下,您可能想要使用常驻后端。

于 2012-05-21T22:32:46.973 回答
1

我发现您的代码存在一些问题。首先,您的启动处理程序被称为crawl.py,但您的backends.yaml指的是crawler.py. 其次,中指定的启动处理程序backends.yaml仅指定启动请求的处理程序文件 - 所有其他请求,例如由 cron 创建的请求,都会app.yaml像常规请求一样通过并路由到处理程序。

于 2012-05-22T07:00:12.580 回答
1

我缺少的另一件事-显然常规部署命令不会更新后端,因此我需要一个新的批处理文件来执行此操作:

echo <password> | python "C:\Program Files (x86)\Google\google_appengine\appcfg.py" --email=<myemail> backends <app src folder path> update
于 2012-05-22T07:47:42.193 回答