我有一个带有两个模块的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并使用它来解决数据存储管理问题。
答案 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>