我有一个在端口 8080 上运行的 bottle 服务器,使用“gevent”服务器。我使用这个服务器来支持一些简单的“服务器发送的事件”。
我的问题可能与不知道我的设置是如何工作有关。我希望有人能花时间详细说明这一点。
来自服务器的所有路由和文件服务都运行良好,但我在访问特定路由“/get_data”时遇到问题。这从网络以及一些内部数据源收集数据。聚会大约需要 30 分钟。在此进程运行时,我无法访问服务器上的任何路由,即“/”或“/login”。该过程完成后,一切都会恢复正常,并且会使用收集到的信息更新数据库。
我尝试用一个简单的 time.sleep(60) 替换收集算法,当计时器处于活动状态时,我仍然能够很好地访问其他路由。
这引出了我的两个问题:
发生这种情况是因为 WSGI 同步处理请求/响应。
您可以使用 gunicorn
来运行您的应用程序,它将处理多个请求和响应,或者您可以使用 bottle 网站中描述的其他方法:
异步应用程序入门