0

我将 sunspot 与延迟作业结合使用,以将我的模型重新索引为异步后台进程。对于模型更新,这可以正常工作,因为:handle_asynchronously :solr_index, :queue => 'solr_index'.

但是,模型中的可搜索块(我们称其为模型 A)还引用关联模型 (B) 的属性,其中 B 有许多 As。当关联模型被用户更新时,我会在 B 中的 after_save 回调中触发重新索引,如下所示Sunspot.index(self.my_many_As):虽然重新索引成功,但它不会作为延迟作业运行。我怎样才能做到这一点?

有什么建议么?

4

2 回答 2

1

您如何安排一个调用更新文档索引的作业?您可以记录特定模型的上次更新索引,并调用 Sunspot.index(ModelB.updated_after(last_update_time))

于 2012-08-15T15:22:53.877 回答
0

我没有调用,而是Sunspot.index(self.my_many_As)直接在 B 的 after_save 回调中为每个 A 调用 solr_index self.my_many_As.each(&:solr_index)。为我工作。

于 2012-08-17T16:29:35.467 回答