Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用sidekiq重新计算太阳黑子指数_Ruby On Rails_Sidekiq_Sunspot_Sunspot Rails - Fatal编程技术网

Ruby on rails 用sidekiq重新计算太阳黑子指数

Ruby on rails 用sidekiq重新计算太阳黑子指数,ruby-on-rails,sidekiq,sunspot,sunspot-rails,Ruby On Rails,Sidekiq,Sunspot,Sunspot Rails,当我试图用sidekiq在后台重新索引一些记录时,什么也没发生 afisha.delay(:queue => 'critical').reindex_showings 但是如果我在没有sidekiq的情况下重新索引这些记录,一切都会正常 afisha.reindex_showings 有人能帮忙吗?我怀疑这些更改没有“提交”给Solr。一旦您将更改发送到Solr,它们需要“提交”才能生效(并变得可见)。 在每个Web服务器请求结束时,Sunspot会自动提交您对索引所做的任何更改。但是

当我试图用sidekiq在后台重新索引一些记录时,什么也没发生

afisha.delay(:queue => 'critical').reindex_showings
但是如果我在没有sidekiq的情况下重新索引这些记录,一切都会正常

afisha.reindex_showings

有人能帮忙吗?

我怀疑这些更改没有“提交”给Solr。一旦您将更改发送到Solr,它们需要“提交”才能生效(并变得可见)。 在每个Web服务器请求结束时,Sunspot会自动提交您对索引所做的任何更改。但是,在Sidekiq作业结束时不会进行此类处理。您有几个选择:

  • 告诉Solr每隔一段时间自动提交一次(在solrconfig.xml中)

  • 修改Sidekiq,使其始终在每个作业结束时调用
    Sunspot.commit
    (注意,这可能会影响性能)

  • <autoCommit> <maxDocs>10000</maxDocs> <maxTime>30000</maxTime> </autoCommit>
     afisha.reindex_showings
     Sunspot.commit