Reputation: 767
I have a Java GAE application with two modules for which I am having problems using the backup/restore Datastore Admin functionality. The tasks get created properly but fail and retry endlessly in the default queue. From the logs of my non-default ("engine") module it looks like it is trying to process them there (rather than in the default module for the app). I also don't have anything explicitly mapping /_ah/mapreduce in my web.xml for either module, which seems to be the symptom being reported. I don't see any documentation suggesting I need to go and manually configure appengine-mapreduce.jar so I haven't gone down that road yet.
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
This did work at one point but I've upgraded quite a bit (moved from backends to modules, moved to HRD, upgraded GAE version to 1.9.2, etc.).
Thanks in advance for any hints or suggestions!
Edit:
So I figured this out. I have two modules in my app (named default and engine). The default task queue is routed to the engine module (formerly a backend) in my queue.xml, rather than ah-builtin-python-bundle.
Adding a new queue in my queue.xml routed to ah-builtin-python-bundle and using that for Datastore Admin fixed the problem.
Upvotes: 2
Views: 220
Reputation: 767
If you make any changes to the default task queue using queue.xml, in particular the target element, you'll want to create a queue for using the Datastore Admin. Soemthing like:
<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>
Upvotes: 1