我正在构建一个包含大量第三方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
让我们说Alice开始创建请求并等待回复。同时Bob启动索引请求。如果我只有一名工人,这将是一个问题(鲍勃只有在爱丽丝得到答复后才能看到索引)。
在Rails中分离API调用(call_my_slow_api)逻辑的最佳方法是什么?
感谢。
答案 0 :(得分:0)
后台工作可能是要走的路,如果您使用的是最新版本的rails 4(4.3?),那么activejob就像一个普通的DSL,可以配合任何工作服务。如果不是Resque,DelayedJobs等,那么你可能想要探索。