【发布时间】:2018-07-24 18:58:53
【问题描述】:
我开始使用searchkick连接elasticsearch,在后台作业中遇到了索引更新的问题。我在文档中都是通过示例进行的,但是sidekiq中的searchkick任务只有在重新启动sidekiq后才会累积和执行,并且在执行之后,任务会再次收集而不执行。下面的代码。
这是我的 searchkick.rb 初始化程序
Searchkick.client =
Elasticsearch::Client.new(
url: 'remote_ip:9200',
retry_on_failure: true,
transport_options: { request: { timeout: 250 } }
)
Searchkick.redis = ConnectionPool.new { Redis.new }
我的模型的一部分
after_commit :searchkick_indexing
searchkick callbacks: :queue, index_name: :my_index_name
def search_data
{
title: title,
description: description
}
end
private
def searchkick_indexing
Searchkick::ProcessQueueJob.perform_later(class_name: "model_name")
end
另外,我将searchkick 队列添加到sidekiq.yml。
如何在不重新启动 sidekiq 的情况下始终执行 searchkick 作业?
提前致谢?
【问题讨论】:
标签: ruby-on-rails ruby elasticsearch searchkick