我正在使用searchkick与RoR 4应用程序上的elasticsearch一起使用。 Searchkick很棒,而且令人惊讶的易于使用,但是其中一些选项没有得到很好的描述。
这是一个交通繁忙的站点,因此我正尝试使用sidekiq异步完成大多数工作。
我正在尝试在创建/更新记录后放置更新索引以使其也异步工作,但:queue选项似乎更适合我的情况,因为它正在对丢失的记录进行大量更新。
因此,文档说的是set_up redis和模型上的callbacks选项,并且:
Then, set up a background job to run.
Searchkick::ProcessQueueJob.perform_later(class_name: "Product")
该代码放在哪里?
当我添加一些记录时,在运行一次之前它们是不可见的,是否应该按时间表运行?作为CRON任务?
最佳答案
是的,您应该设置cron作业:创建rake任务并开始执行它。 searchkick回调作为队列使用Redis队列。作业开始后,它将获取到目前为止所有累积的“产品” ID并为其编制索引。因此,如果要使产品的索引保持最新状态,则需要重复执行该工作。
关于ruby-on-rails - 如何使用sidekiq和队列作为searchkick `callbacks`选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61667751/