【发布时间】:2013-04-23 15:39:18
【问题描述】:
我今天升级到 GAE 1.7.7,发现任务队列在我的开发设置中停止工作。
我在我的开发环境中使用 https,通过 nginx 设置代理从 fakedomain.local:80 和 fakedomain.local:443 到 localhost:8080(GAE 侦听的位置)的连接。
通过此设置,最终会创建任务队列以在 fakedomain.local:80 处执行。这曾经有效,因为请求将被 nginx 接收,但开发服务器的 1.7.7 版本似乎有一个端口注册表,除非端口已知(如果我了解 google.appengine. tools.devappserver2.Dispatcher._resolve_target 正确)。当然,GAE 侦听端口 8080,我标记为在 fakedomain.local:80 上运行的任务永远不会被执行(GAE 记录此错误:在队列中发送任务“task1”(Url:“...”)时发生错误...)。
我尝试修补 dispatcher.py:577,因此当端口未知时,它不会引发 ServerDoesNotExistError,而是使用默认服务器。通过这个修改,我可以让任务队列再次运行,但我宁愿使用不涉及更改 GAE 代码的解决方案。
如何让GAE在1.7.7版本中注册80和443端口?或者,有没有办法可以为任务指定完整的目标 URL? (即 fakedomain.local:8080/my_task,而不仅仅是 /mytask)。
【问题讨论】:
-
我在尝试使用我的 gae 后端测试我的前端时遇到了类似的错误。你找到解决办法了吗?
-
我没有找到官方解决方案,所以修补 GAE 是我让它工作的唯一方法。 AFAIK 这可能与环境有关,因为我已经看到它发生在某些设置上而不是其他设置上。还有一个新版本的 GAE,我还没有检查过,也许它已在新版本中修复...