from google.appengine.api import taskqueue
from google.appengine.api.taskqueue import taskqueue
File "/Users/dgaedcke/dev/TouchstoneMicroservices/common/async_tasks/push_notify.py", line 49, in registerPush
taskqueue.add(target='task', queue_name=GAEQ_FOR_PUSH_NOTIFY, url=url, params=params )
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/taskqueue/taskqueue.py", line 2505, in add
return Task(*args, **kwargs).add(
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/taskqueue/taskqueue.py", line 823, in __init__
self.__resolve_hostname_and_target()
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/taskqueue/taskqueue.py", line 877, in __resolve_hostname_and_target
host = self.__host_from_target(self.__target)
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/taskqueue/taskqueue.py", line 957, in __host_from_target
instance=instance)
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/modules/modules.py", line 459, in get_hostname
_ResultHook).get_result()
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result
return self.__get_result_hook(self)
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/modules/modules.py", line 442, in _ResultHook
_CheckAsyncResult(rpc, mapped_errors, [])
File "/Users/dgaedcke/gcloud_tools/google-cloud-sdk/platform/google_appengine/google/appengine/api/modules/modules.py", line 147, in _CheckAsyncResult
raise mapped_error()
InvalidModuleError
OK....I found the problem. The dev server was starting up without the taskqueue server running and so I guess the whole taskqueue package was not added to the google.api package....
Seems like a better error would be useful in that case....
dev_appserver.py --clear_datastore 0 app.yaml service_admin.yaml --logs_path=/tmp/gaelogs --log_level=debug
I didn't realize that I had grabbed an old example from our dev-onboarding document...and I should have been starting the local server like this:
dev_appserver.py --clear_datastore 0 app.yaml service_admin.yaml service_task.yaml --logs_path=/tmp/gaelogs --log_level=debug
once I also started the task microservice, the crash disappeared....or at least I've not seen it again
service_task.yaml is the one that includes:
- url: /_ah/queue/deferred
script: google.appengine.ext.deferred.handler
login: admin
in the handlers section
all I can guess is that this caused the local environment to start up the task queue....but I really am only guessing...