Sha256: 9e173ecf45b108c45922d62fb432fde53a72a666704b12529c32b6b6b71f0622
Contents?: true
Size: 1.5 KB
Versions: 3
Compression:
Stored size: 1.5 KB
Contents
# -*- coding: utf-8 -*- module XapianDb module IndexWriters # Worker to update the Xapian index; the worker will be called by sidekiq # and uses the DirectWriter to do the real work # @author Michael Stämpfli and John Bradley class SidekiqWorker extend XapianDb::Utilities APPROVED_TASKS = [:index, :delete_doc, :reindex_class] def perform(task, options) self.class.send(task, options) if APPROVED_TASKS.include?(task.to_sym) end class << self def queue XapianDb::Config.sidekiq_queue end def perform(task, options) send(task, options) if APPROVED_TASKS.include?(task.to_sym) end def index(options) options = JSON.parse(options) klass = constantize options['class'] obj = klass.respond_to?('get') ? klass.get(options['id']) : klass.find(options['id']) DirectWriter.index obj, true, changed_attrs: options[:changed_attrs] end def delete_doc(options) options = JSON.parse(options) DirectWriter.delete_doc_with options['xapian_id'] end def reindex_class(options) options = JSON.parse(options) klass = constantize options['class'] DirectWriter.reindex_class klass, :verbose => false end def set_max_expansion XapianDb::Config.set_max_expansion end def sidekiq_retry XapianDb::Config.sidekiq_retry end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems