我在本地开发服务器上使用GAE python2.7。我已经配置了一个后端
backends:
- name: worker
class: B1
options: dynamic
我使用默认的任务队列。一切正常,后台和任务队列在SDK控制台可见。同时,本地开发工作也没有出现任何错误:
^{pr2}$但是如果我试图通过一个任务来处理后端
taskqueue.add(url='/xyz', method='POST', target='worker', params={'a':'b'})
此错误引发:
ERROR An error occured while sending the task "task1" (Url: "/backend/languages/create_database/") in queue "default". Treating as a task error.
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/taskqueue/taskqueue_stub.py", line 1884, in ExecuteTask
connection.endheaders()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 937, in endheaders
self._send_output(message_body)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 797, in _send_output
self.send(msg)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 759, in send
self.connect()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 740, in connect
self.timeout, self.source_address)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 8] nodename nor servname provided, or not known
我正在使用'localhost',看不出它失败的任何原因。一些想法/解决方案?有什么启动参数丢失或类似的情况吗?在
谢谢
有一种解决方法可以帮助我在本地进行调试:
在本例中,如果我们在本地进行调试,则在常规任务队列中运行该任务。如果我们将此代码放入appengine,它将使用后端服务器启动任务。在
这是^{} 中的一个错误,它遗漏了区分生产环境和开发环境的情况。在
在生产中,它通过将
target
与hostname
连接来完成正确的操作。在在开发中,这不起作用,并且会产生您在试图解析
worker.localhost
地址时报告的错误。在相反,它应该将任务主机设置为运行后端的
ip:port
dev_appserver。在公共问题跟踪程序中已经有一个已上报给工程团队的bug。在
如果你想得到更新的通知,可以随时开始。在
相关问题 更多 >
编程相关推荐