summaryrefslogtreecommitdiff
path: root/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/tasks.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/plugins/thinking-sphinx/lib/thinking_sphinx/tasks.rb')
-rw-r--r--vendor/plugins/thinking-sphinx/lib/thinking_sphinx/tasks.rb128
1 files changed, 0 insertions, 128 deletions
diff --git a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/tasks.rb b/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/tasks.rb
deleted file mode 100644
index ab8990e..0000000
--- a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/tasks.rb
+++ /dev/null
@@ -1,128 +0,0 @@
1require 'fileutils'
2
3namespace :thinking_sphinx do
4 task :app_env do
5 Rake::Task[:environment].invoke if defined?(RAILS_ROOT)
6 Rake::Task[:merb_env].invoke if defined?(Merb)
7 end
8
9 desc "Stop if running, then start a Sphinx searchd daemon using Thinking Sphinx's settings"
10 task :running_start => :app_env do
11 Rake::Task["thinking_sphinx:stop"].invoke if sphinx_running?
12 Rake::Task["thinking_sphinx:start"].invoke
13 end
14
15 desc "Start a Sphinx searchd daemon using Thinking Sphinx's settings"
16 task :start => :app_env do
17 config = ThinkingSphinx::Configuration.instance
18
19 FileUtils.mkdir_p config.searchd_file_path
20 raise RuntimeError, "searchd is already running." if sphinx_running?
21
22 Dir["#{config.searchd_file_path}/*.spl"].each { |file| File.delete(file) }
23
24 cmd = "#{config.bin_path}searchd --pidfile --config #{config.config_file}"
25 puts cmd
26 system cmd
27
28 sleep(2)
29
30 if sphinx_running?
31 puts "Started successfully (pid #{sphinx_pid})."
32 else
33 puts "Failed to start searchd daemon. Check #{config.searchd_log_file}."
34 end
35 end
36
37 desc "Stop Sphinx using Thinking Sphinx's settings"
38 task :stop => :app_env do
39 raise RuntimeError, "searchd is not running." unless sphinx_running?
40 config = ThinkingSphinx::Configuration.instance
41 pid = sphinx_pid
42 system "#{config.bin_path}searchd --stop --config #{config.config_file}"
43 puts "Stopped search daemon (pid #{pid})."
44 end
45
46 desc "Restart Sphinx"
47 task :restart => [:app_env, :stop, :start]
48
49 desc "Generate the Sphinx configuration file using Thinking Sphinx's settings"
50 task :configure => :app_env do
51 config = ThinkingSphinx::Configuration.instance
52 puts "Generating Configuration to #{config.config_file}"
53 config.build
54 end
55
56 desc "Index data for Sphinx using Thinking Sphinx's settings"
57 task :index => :app_env do
58 ThinkingSphinx::Deltas::Job.cancel_thinking_sphinx_jobs
59
60 config = ThinkingSphinx::Configuration.instance
61 unless ENV["INDEX_ONLY"] == "true"
62 puts "Generating Configuration to #{config.config_file}"
63 config.build
64 end
65
66 FileUtils.mkdir_p config.searchd_file_path
67 cmd = "#{config.bin_path}indexer --config #{config.config_file} --all"
68 cmd << " --rotate" if sphinx_running?
69 puts cmd
70 system cmd
71 end
72
73 namespace :index do
74 task :delta => :app_env do
75 ThinkingSphinx.indexed_models.select { |model|
76 model.constantize.sphinx_indexes.any? { |index| index.delta? }
77 }.each do |model|
78 model.constantize.sphinx_indexes.select { |index|
79 index.delta? && index.delta_object.respond_to?(:delayed_index)
80 }.each { |index|
81 index.delta_object.delayed_index(index.model)
82 }
83 end
84 end
85 end
86
87 desc "Process stored delta index requests"
88 task :delayed_delta => :app_env do
89 require 'delayed/worker'
90
91 Delayed::Worker.new(
92 :min_priority => ENV['MIN_PRIORITY'],
93 :max_priority => ENV['MAX_PRIORITY']
94 ).start
95 end
96end
97
98namespace :ts do
99 desc "Stop if running, then start a Sphinx searchd daemon using Thinking Sphinx's settings"
100 task :run => "thinking_sphinx:running_start"
101 desc "Start a Sphinx searchd daemon using Thinking Sphinx's settings"
102 task :start => "thinking_sphinx:start"
103 desc "Stop Sphinx using Thinking Sphinx's settings"
104 task :stop => "thinking_sphinx:stop"
105 desc "Index data for Sphinx using Thinking Sphinx's settings"
106 task :in => "thinking_sphinx:index"
107 namespace :in do
108 desc "Index Thinking Sphinx datetime delta indexes"
109 task :delta => "thinking_sphinx:index:delta"
110 end
111 task :index => "thinking_sphinx:index"
112 desc "Restart Sphinx"
113 task :restart => "thinking_sphinx:restart"
114 desc "Generate the Sphinx configuration file using Thinking Sphinx's settings"
115 task :conf => "thinking_sphinx:configure"
116 desc "Generate the Sphinx configuration file using Thinking Sphinx's settings"
117 task :config => "thinking_sphinx:configure"
118 desc "Process stored delta index requests"
119 task :dd => "thinking_sphinx:delayed_delta"
120end
121
122def sphinx_pid
123 ThinkingSphinx.sphinx_pid
124end
125
126def sphinx_running?
127 ThinkingSphinx.sphinx_running?
128end