Sha256: 042f3820fb7623c37af7d1b0160c01f4f9e11e25db66bfcaad5993e313d3d3e0

Contents?: true

Size: 1.31 KB

Versions: 11

Compression:

Stored size: 1.31 KB

Contents

# encoding: utf-8

# This writer puts reindex requests into a stalker queue. If you want
# to use this writer, you must install beanstalkd and the stalker gem.
# This writer can only be used inside a Rails app.
# See https://github.com/adamwiggins/stalker for more info
# @author Gernot Kogler

require 'beanstalk-client'
require 'json'

module XapianDb
  module IndexWriters

    class BeanstalkWriter

      class << self

        # Update an object in the index
        # @param [Object] obj An instance of a class with a blueprint configuration
        def index(obj, commit=true)
          beanstalk.put( {:task => "index_task", :class => obj.class.name, :id => obj.id }.to_json )
        end

        # Remove an object from the index
        # @param [String] xapian_id The document id
        def delete_doc_with(xapian_id, commit=true)
          beanstalk.put( { :task => "delete_doc_task", :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={})
          beanstalk.put( { :task => "reindex_class_task", :class => klass.name }.to_json )
        end

        def beanstalk
          @beanstalk ||= Beanstalk::Pool.new([XapianDb::Config.beanstalk_daemon_url])
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
xapian_db-1.3.5.4 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.5.3 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.5.2 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.5.1 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.5 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.4 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.3.1 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.3 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.2 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3.1 lib/xapian_db/index_writers/beanstalk_writer.rb
xapian_db-1.3 lib/xapian_db/index_writers/beanstalk_writer.rb