use*_*561 7 python google-app-engine
我正在使用GAE Python 2.7和本地开发服务器.我配置了一个后端
backends:
- name: worker
class: B1
options: dynamic
Run Code Online (Sandbox Code Playgroud)
我正在使用默认的taskqueue.一切正常,后端和任务队列在SDK控制台上可见.本地开发工作也开始没有任何错误:
Multiprocess Setup Complete:
Remote API Server [http://localhost:9200]
App Instance [http://localhost:9000]
Backend Instance: worker.0 [http://localhost:9100]
Backend Balancer: worker [http://localhost:9199]
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试通过任务解决后端问题
taskqueue.add(url='/xyz', method='POST', target='worker', params={'a':'b'})
Run Code Online (Sandbox Code Playgroud)
这个错误提出:
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
Run Code Online (Sandbox Code Playgroud)
我正在使用'localhost',看不出它失败的原因.一些想法/解决方案?任何启动参数缺失或类似的东西?
谢谢
这是一个错误taskqueue.py,它错过了区分生产和开发环境的案例.
在生产中,它通过连接target与正确的方式做正确的事情hostname.
在开发中,这不起作用,并将产生您在尝试解析worker.localhost地址时报告的错误.
相反,它应该将任务主机设置为ip:portdev_appserver正在运行后端.
已经有一个错误在已经上报给工程队的公开问题追踪.
如果您想收到有关更新的通知,请随意为其加注星标.