GAE Python - Cron作业不在目标模块上执行

时间:2014-01-17 11:49:07

标签: python google-app-engine module cron gae-module

我刚刚在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作业。为什么不接受目标参数?

2 个答案:

答案 0 :(得分:1)

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

appcfg update app.yaml reporting.yaml

执行此操作后,目标参数有效。

答案 1 :(得分:0)

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

  

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

如同GAE document中的示例代码一样,将cron作业转发到目标模块怎么样?

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)