Rails和缓慢的第三方API

时间:2015-01-31 12:48:24

标签: ruby-on-rails performance api

我正在构建一个包含大量第三方API使用的Rails应用程序。 API与常见的Web API不同,它们与系统linux工具有关,因此对这些API的请求将花费相当长的时间(1-5s)。

示例:

我有像

这样的文档模型
def index
  @documents = current_user.documents # just simple DB request
end

def create
  @document = Document.new(document_params)
  @document.sid = call_my_slow_api(@document.title)
  @document.save
end
  1. 让我们说Alice开始创建请求并等待回复。同时Bob启动索引请求。如果我只有一名工人,这将是一个问题(鲍勃只有在爱丽丝得到答复后才能看到索引)。

  2. 在Rails中分离API调用(call_my_slow_api)逻辑的最佳方法是什么?

  3. 感谢。

1 个答案:

答案 0 :(得分:0)

后台工作可能是要走的路,如果您使用的是最新版本的rails 4(4.3?),那么activejob就像一个普通的DSL,可以配合任何工作服务。如果不是Resque,DelayedJobs等,那么你可能想要探索。