【问题标题】:Sunspot reindex with sidekiq使用 sidekiq 重新索引太阳黑子
【发布时间】:2015-09-28 18:41:39
【问题描述】:
当我尝试使用 sidekiq 在后台重新索引一些记录时,什么也没发生。
afisha.delay(:queue => 'critical').reindex_showings
但如果我在没有 sidekiq 的情况下重新索引这些记录,一切正常。
afisha.reindex_showings
谁能帮忙?
【问题讨论】:
标签:
ruby-on-rails
sidekiq
sunspot
sunspot-rails
【解决方案1】:
我怀疑这些更改并未“提交”给 Solr。将更改发送到 Solr 后,它们需要“提交”才能生效(并变得可见)。
在每个网络服务器请求结束时,Sunspot 会自动提交您对索引所做的任何更改。但是,在 Sidekiq 作业结束时不会进行此类处理。您有几个选择:
-
告诉 Solr 每隔一段时间自动提交一次(在 solrconfig.xml 中)。
1000030000
-
创建一个运行的自定义作业:
afisha.reindex_showings
Sunspot.commit
修改 Sidekiq,使其始终在每个作业结束时调用 Sunspot.commit(请注意,这可能会影响性能)。