将作业添加到GAE TaskeQueue

时间:2017-03-29 00:47:34

标签: python google-app-engine

有人可以告诉我如何解决下面显示的G​​AE python 2.7错误:

在我升级GCloud之后才开始发生,我不明白改变了什么。 我的导入如下:

  

来自google.appengine.api导入任务队列

但我看到一些较新的文档显示如下:

  

来自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

2 个答案:

答案 0 :(得分:1)

@Dewey的comment就是答案。如果你有多个服务,pass them all to dev_appserver,或者至少你发送任务队列任务的任何服务,例如:

dev_appserver.py app.yaml tasks.yaml

答案 1 :(得分:0)

好的....我发现了问题。 开发服务器启动时没有运行任务队列服务器,所以我猜整个taskqueue包没有添加到google.api包....

似乎更好的错误在这种情况下会很有用....