瓶子服务器在计算时没有响应

时间:2015-04-22 15:18:15

标签: python flask bottle gevent ports

我在端口8080上运行了一个瓶子服务器,使用" gevent"服务器。我使用这个服务器来支持一些简单的"服务器发送事件"。

我的问题可能与我不确切知道我的设置是如何工作有关。我希望有人可以花时间详细说明这一点。

来自服务器的所有路径和文件服务都运行良好,但访问特定路由" / get_data"时出现问题。这会从Web和某些内部数据源收集数据。聚会大约需要30分钟。在此过程运行时,我无法访问服务器上的任何路由,即" /"或" / login"。一旦完成该过程,一切都会再次起作用,并使用收集的信息更新数据库。

我尝试用简单的time.sleep(60)替换采集算法,当计时器处于活动状态时,我仍然可以正常访问其他路径。

这导致了我的两个问题:

  1. 为什么在此过程运行时无法访问服务器。它是被阻止的端口(从阅读网络信息),还是与线程有关?
  2. 在我的服务器上运行要求苛刻的/长进程的最佳方法是什么?我最好从我的网络应用程序访问它,但我想过将它放在一个单独的python文件中并在服务器上运行这个localy,在一个单独的python实例中。这个过程每天最多运行一次,可能很少每周运行一次。

1 个答案:

答案 0 :(得分:3)

这是因为WSGI同步处理请求/响应 您可以使用gunicorn来运行您的应用程序,它将处理多个请求和响应,或者您可以使用瓶子网站中描述的其他方法:
Primer to Asynchronous Applications