DF: Modified to make Rails 3 / Ruby 1.9.2 happy. Simply changed DeltaJob and FlagAsDeletedJob to extend Struct.new, like other delayed job classes.
You’ll need Thinking Sphinx 1.3.0 or later, and Delayed Job as well. The latter is flagged as a dependency.
gem install ts-delayed-delta --source http://gemcutter.org
In your environment.rb
file, with the rest of your gem dependencies:
config.gem 'ts-delayed-delta',
:lib => 'thinking_sphinx/deltas/delayed_delta',
:version => '>= 1.0.0',
:source => 'http://gemcutter.org'
And add the following line to the bottom of your Rakefile
:
require 'thinking_sphinx/deltas/delayed_delta/tasks'
If this is your first time running Delayed Job, then you’re going to need the jobs table migration as well:
script/generate delayed_job
For the indexes you want to use this delta approach, make sure you set that up in their define_index
blocks.
define_index do
# ...
set_property :delta => :delayed
end
If you’ve never used delta indexes before, you’ll want to add the boolean column named delta to each model that is using the approach.
def self.up
add_column :articles, :delta, :boolean, :default => true, :null => false
end
Once you’ve got it all set up, all you need to do is make sure that the delayed job process is running – either by Delayed Job’s built-in approach, or Thinking Sphinx’s custom rake task:
rake thinking_sphinx:delayed_delta
There’s also a short name for the same task, to save your fingers some effort:
rake ts:dd
- Ryan Schlesinger (Allowing installs as a plugin)
- Maximilian Schulz (Ensuring compatibility with Bundler)
- Edgars Beigarts (Adding intelligent description for tasks)
- Alexander Simonov (Explicit table definition)
- David Goodlad (Delayed Job/ActiveRecord load order fix)
Copyright © 2009 Pat Allan, and released under an MIT Licence.