GCE运行Bottle停止侦听http请求

时间:2018-03-08 11:22:26

标签: python google-compute-engine bottle

我在GCE服务器(一个简单的乒乓服务器)上运行一个非常简单的瓶子应用程序:

screen

我可以按照预期发送ping和pongs,但是如果我让它静置一段时间(时间量发生变化)并再次发送ping,我看不到服务器获取请求的指示,以及请求时间没有回答。

我的服务器正在运行带有Python3.6的Ubuntu,并且当ssh连接断开时,我使用SWRevealViewController使服务器保持活动状态。

这是我到目前为止所尝试的内容:

  • 真正的应用程序更加复杂。我把它缩小到上面的例子,以确保它真的是瓶子,而不是让服务器挂起的任何其他东西。
  • 我认为这可能与请求数量有关(也许我不会释放一些资源,并且在N个请求之后没有资源来获取请求),但是请求之前的请求数量服务器停止接听变化
  • 虽然它可能是某种类型的超时问题,但是上次应答请求和挂起的请求之间的时间量发生了变化(有时它会在40分钟后回答,有时会赢得

我做错了什么?

编辑:请求似乎在服务器上挂起:当我发送ping并等待响应时,如果我在等待时等待服务器应用程序我立即得到一个找不到的页面"页。但瓶子由于某种原因无法识别请求。

1 个答案:

答案 0 :(得分:1)

事实证明问题是由瓶子的默认HTTP开发服务器引起的。 将服务器更改为cherrypy解决了问题(并使我的应用程序响应速度更快)。

import bottle

@bottle.route('/ping')
def ping():
    return 'pong'

SERVER_PORT = 5000

if __name__ == "__main__":
    bottle.run(host = '0.0.0.0', port = SERVER_PORT, server = 'cherrypy')