我想调用一个Rails服务器,然后对外部API进行10次调用,一次一个,然后在完成所有工作后返回结果。
因此,如果x是其中一个API调用发生的时间,则请求需要10倍。
但是我想知道是否有任何线程可能会立即进行所有调用,然后让它们同时发生,因此整个请求只与最慢的外部API调用一样长。
我正在使用Rails和Heroku,并且想知道任何可能的解决方案。
答案 0 :(得分:1)
要制作并发请求,请考虑签出https://github.com/typhoeus/typhoeus。根据他们的自述文件:" Typhoeus并行运行HTTP请求,同时干净地封装处理逻辑。"
要处理并发请求,请考虑使用Puma等多线程Web服务器或Unicorn等多进程Web服务器。
以下是Heroku在向Puma部署Rails应用程序时撰写的文章: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server
以下是Heroku撰写的另一篇关于将Rails应用程序部署到Unicorn的文章:https://devcenter.heroku.com/articles/rails-unicorn