Sha256: aec2518104530b6313dbdd4288dae96cc7c462c4131fb203c636c76f885ff42f
Contents?: true
Size: 1.66 KB
Versions: 1
Compression:
Stored size: 1.66 KB
Contents
# -*- coding: utf-8 -*- # This writer uses sidekiq to enqueue index jobs # @author Michael Stämpfli and John Bradley require 'sidekiq' module XapianDb module IndexWriters class SidekiqWriter SidekiqWorker.class_eval do include Sidekiq::Worker sidekiq_options set_max_expansion: set_max_expansion end class << self # Update an object in the index # @param [Object] obj An instance of a class with a blueprint configuration def queue XapianDb::Config.sidekiq_queue end def index(obj, _commit= true, changed_attrs: []) Sidekiq::Client.enqueue_to(queue, worker_class, 'index', { class: obj.class.name, id: obj.id, changed_attrs: changed_attrs }.to_json) end # Remove an object from the index # @param [String] xapian_id The document id def delete_doc_with(xapian_id, _commit= true) Sidekiq::Client.enqueue_to(queue, worker_class, 'delete_doc', { xapian_id: xapian_id }.to_json) end # Reindex all objects of a given class # @param [Class] klass The class to reindex def reindex_class(klass, _options = {}) Sidekiq::Client.enqueue_to(queue, worker_class, 'reindex_class', { class: klass.name }.to_json) end def set_max_expansion XapianDb::Config.set_max_expansion end def worker_class SidekiqWorker end private :worker_class end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
xapian_db-1.3.12 | lib/xapian_db/index_writers/sidekiq_writer.rb |