我正在考虑使用Rails编写一个web应用程序。用户发出的每个请求都依赖于调用外部API。这个外部API可能会随机变得非常慢(2-3秒),显然这会影响到单个请求。
在代码等待外部API返回的时间内,是否会阻塞进一步的用户请求?
只是为了进一步澄清,因为似乎有些混淆,这是我预期的模型:
- Alice向我的Web应用程序发出请求。为了满足这个请求,需要调用API服务器A。API服务器A很慢,需要3秒钟才能完成。
- 在这个等待时间里,当Rails应用程序调用API服务器A时,Bob发出了一个请求,该请求必须向API服务器B发出请求。
Ruby解释器(或者Rails 3.x框架中的某些东西)是否会阻塞Bob的请求,要求他等到Alice的请求完成后再进行处理?