GAE数据存储管理备份在mapreduce上失败,404失败

时间:2015-01-07 19:33:22

标签: java google-app-engine

我有一个带有两个模块的Java GAE应用程序,我在使用备份/恢复数据存储管理功能时遇到了问题。任务已正确创建但失败并在默认队列中无限重试。从我的非默认("引擎")模块的日志看起来它正在尝试在那里处理它们(而不是在应用程序的默认模块中)。我也没有在我的web.xml中为任何模块显式映射/ _ah / mapreduce,这似乎是报告的症状。我没有看到任何文档建议我需要手动配置appengine-mapreduce.jar,所以我还没有走上那条路。

0.1.0.2 - - [07/Jan/2015:08:11:19 -0800] "POST /_ah/mapreduce/kickoffjob_callback/15759222115551DD09797 HTTP/1.1" 404 234 "https://ah-builtin-python-bundle-dot-MYAPP.appspot.com/_ah/datastore_admin/backup.do" "AppEngine-Google; (+http://code.google.com/appengine)" "engine.MYAPP.appspot.com" ms=10713 cpu_ms=22 cpm_usd=0.000026 queue_name=default task_name=50337988952552890461 pending_ms=10702 instance=0 app_engine_release=1.9.17 

这确实有效,但我已经升级了很多(从后端转移到模块,转移到HRD,将GAE版本升级到1.9.2等)。

提前感谢任何提示或建议!

修改

所以我想出来了。我的应用程序中有两个模块(名为default和engine)。默认任务队列被路由到我的queue.xml中的引擎模块(以前称为后端),而不是ah-builtin-python-bundle。

在我的queue.xml中添加一个新队列,路由到ah-builtin-python-bundle并使用它来解决数据存储管理问题。

1 个答案:

答案 0 :(得分:1)

如果使用queue.xml对默认任务队列进行任何更改,尤其是 target 元素,则您将要创建使用数据存储区管理员的队列。像这样的东西:

<queue>
    <name>backup</name>
    <rate>10/s</rate>
    <bucket-size>40</bucket-size>
    <max-concurrent-requests>10</max-concurrent-requests>
    <target>ah-builtin-python-bundle</target>
</queue>