Rails:灵魂伴侣宝石流水线为多种类型

时间:2014-02-05 21:21:27

标签: ruby-on-rails gem redis pipeline

我在我的Rails应用程序中使用soulmate gem进行自动完成,我遇到的一个大问题是从客户端到Redis服务器的返回延迟。

快速浏览一下宝石代码

# in lib/soulmate/server.rb#search
types.each do |type|
    matcher = Matcher.new(type)
    results[type] = matcher.matches_for_term(term, :limit => limit)
end

如您所见,为Soulmate::Matcher创建了type的新实例(即“位置”,“用户”,“场地”等),然后查询Redis服务器使用matches_for_term方法。这意味着如果我想一次查询3种类型,将会有6次握手。我希望Soulmate::Matcher在创建和管道查询redis服务器时接受多个type。我将如何改变代码/覆盖?好像我需要重写整个宝石。

1 个答案:

答案 0 :(得分:0)

我最终只使用parallel gem并并行查询。

它很俗气,并且仍然使用比必要更多的握手,只是并行,但它现在有效......