Indexing Ultrasphinx with Rufus Scheduler
I’m using Sphinx and Ultrasphinx for the search engine on one of my projects. I have been struggling with ways to automated the indexing of the database as the commands are rake commands on the command line. Turns out that rufus-scheduler is an excellent solution to this issue. If you allow the scheduler access to the rake file, it is as simple as this schedule below – it is designed to reindex every 90 minutes. I have chose to use the ultrasphinx:bootstrap command because it also has the God like quality of making sure the search server is running at all times.
config/initializers/task_schedule.rb
require 'rake'
require 'rufus/scheduler'
load File.join( RAILS_ROOT, 'Rakefile')
scheduler = Rufus::Scheduler.start_new
scheduler.every("90m") do
Rake::Task["ultrasphinx:bootstrap"].invoke
end