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

Python 瓶子服务器在计算时没有响应,python,flask,bottle,gevent,ports,Python,Flask,Bottle,Gevent,Ports,我有一个瓶子服务器运行在端口8080上,使用“gevent”服务器。我使用这个服务器来支持一些简单的“服务器发送事件” 我的问题可能与不知道我的设置是如何工作的有关。我希望有人能花时间详细说明这一点 来自服务器的所有路由和文件服务都很好,但我在访问特定路由“/get_data”时遇到了一个问题。它从web以及一些内部数据源收集数据。聚会大约需要30分钟。此进程正在运行时,我无法访问服务器上的任何路由,即“/”或“/登录”。一旦该过程完成,所有工作都会重新开始,数据库将使用收集到的信息进行更新 我

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

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

来自服务器的所有路由和文件服务都很好,但我在访问特定路由“/get_data”时遇到了一个问题。它从web以及一些内部数据源收集数据。聚会大约需要30分钟。此进程正在运行时,我无法访问服务器上的任何路由,即“/”或“/登录”。一旦该过程完成,所有工作都会重新开始,数据库将使用收集到的信息进行更新

我试着用一个简单的time.sleep(60)来代替收集算法,当计时器处于活动状态时,我仍然能够很好地访问其他路径

这引出了我的两个问题:

  • 为什么此进程运行时我无法访问服务器。是端口被阻止(无法读取web信息),还是与线程有关
  • 在我的服务器上运行要求很高/很长的进程的最佳方式是什么?最好我想从我的web应用程序中访问它,但是我考虑过把它放在一个单独的python文件中,并在服务器上的一个单独的python实例中运行这个本地版本。此过程每天最多运行一次,可能每周运行一次

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

    我不完全确定这是如何应用的。我将gevent服务器与monkey.patch_all()一起使用。正如我所写,使用time.sleep()时,一切都很好,所以一定有什么是对的。在我看来,该应用程序可以处理多个请求和响应,但某种原因导致数据刮板阻止了一切。我必须使用gevent.queue吗,或者gunicorn是唯一的解决方案吗?