1

我刚刚在 GAE 上实现了模块,并试图从某个模块运行 Cron 作业。我的 app.yaml 在顶部有以下值:

application: myapp
module: default
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
#all handlers

我尝试激活的模块的reporting.yaml 具有以下设置:

application: myapp
module: reporting
version: 1
instance_class: B4
runtime: python27
api_version: 1
threadsafe: true

handlers:
#same handlers as app.yaml

最后我的 cron.yaml 看起来如下:

cron:
- description: update reports
  url: /update
  schedule: every day 12:00
  target: reporting

我需要该模块,因为该作业需要比普通实例提供的更多内存。然而,出于某种原因,当我查看我的应用程序的日志时,它会继续在默认模块上执行 cron 作业。为什么它不接受目标参数?

4

2 回答 2

1

原来我错过了使用以下命令上传模块本身:

appcfg update app.yaml reporting.yaml

这样做之后,目标参数就起作用了。

于 2014-01-17T18:40:21.207 回答
0

请检查GAE 文档中的以下文本- 版本不是模块的目标元素。

如果已为作业设置了目标参数,则将请求发送到指定的版本

如何将 cron 作业转发到您的目标模块,如下面的GAE 文档中的示例代码?

import urllib2
from google.appengine.api import modules

url = "http://%s/" % modules.get_hostname(module="reporting")
try:
  result = urllib2.urlopen(url)
  doSomethingWithResult(result)
except urllib2.URLError, e:
  handleError(e)
于 2014-01-17T14:16:51.600 回答