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