我正在使用 savon gem 与肥皂 api 进行交互。我正在尝试使用并行 gem 向 api 发送三个并行请求。通常每个请求大约需要 13 秒才能完成,因此三个请求大约需要 39 秒。在使用并行 gem 并使用 3 个线程发送三个并行请求后,完成所有三个请求大约需要 23 秒,这非常好,但我无法弄清楚为什么它没有在 14-15 秒内完成它。我真的需要降低总时间,因为它直接影响我网站的响应时间。关于为什么会发生的任何想法?网络请求本质上是阻塞的吗?
我发送请求如下
Parallel.map(["GDSSpecialReturn", "Normal", "LCCSpecialReturn"], :in_threads => 3){ |promo_plan| self.search_request(promo_plan) }
我也尝试使用多个进程,但没有用。