是否可以在一次Rails调用期间同时在Ruby中运行任务?

时间:2014-09-11 20:35:55

标签: ruby-on-rails ruby ruby-on-rails-3 heroku

我想调用一个Rails服务器,然后对外部API进行10次调用,一次一个,然后在完成所有工作后返回结果。

因此,如果x是其中一个API调用发生的时间,则请求需要10倍。

但是我想知道是否有任何线程可能会立即进行所有调用,然后让它们同时发生,因此整个请求只与最慢的外部API调用一样长。

我正在使用Rails和Heroku,并且想知道任何可能的解决方案。

1 个答案:

答案 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