lib/negroku/tasks/eye/delayed_job.rake in negroku-2.0.0.pre7 vs lib/negroku/tasks/eye/delayed_job.rake in negroku-2.0.0
- old
+ new
@@ -1,21 +1,49 @@
#########
## Adds support to monitor delayed_job processes through eye
#########
+def delayed_job_args
+ args = []
+ args << "--queues=#{fetch(:delayed_job_queues).join(',')}" unless fetch(:delayed_job_queues).nil?
+ args << "--prefix=#{fetch(:delayed_job_prefix)}" unless fetch(:delayed_job_prefix).nil?
+ args << fetch(:delayed_job_pools, {}).map {|k,v| "--pool=#{k}:#{v}"}.join(' ') unless fetch(:delayed_job_pools).nil?
+ args.join(' ')
+end
+def delayed_job_bin
+ "#{fetch(:delayed_job_bin_path)}/delayed_job"
+end
+
+def delayed_job_start_command
+ "#{fetch(:rbenv_prefix)} bundle exec #{delayed_job_bin} #{delayed_job_args} -i \#{i} start"
+end
+
+def delayed_job_stop_command
+ "#{fetch(:rbenv_prefix)} bundle exec #{delayed_job_bin} -i \#{i} stop"
+end
+
# Watch the delayed_job processes using the build in template
-watch_process(:delayed_job);
+namespace :eye do
+ task :watch_process do
+ watch_process(:delayed_job, {
+ start_command: delayed_job_start_command,
+ stop_command: delayed_job_stop_command
+ })
+
+ end
+end
+
# Override start, restart and stop delayed_job tasks to so they call
# the eye equivalents
-# namespace :unicorn do
-# ['start','restart','stop'].each do |cmd|
-# if Rake::Task.task_defined?("unicorn:#{cmd}")
-# Rake::Task["unicorn:#{cmd}"].clear_actions
-# # Reload or restart unicorn after the application is published
-# desc "#{cmd} unicorn through eye"
-# task cmd do
-# invoke "eye:#{cmd}", 'unicorn'
-# end
-# end
-# end
-# end
+namespace :delayed_job do
+ ['start','restart','stop'].each do |cmd|
+ if Rake::Task.task_defined?("delayed_job:#{cmd}")
+ Rake::Task["delayed_job:#{cmd}"].clear_actions
+ # Reload or restart delayed_job after the application is published
+ desc "using eye"
+ task cmd do
+ invoke "eye:#{cmd}", 'delayed-job'
+ end
+ end
+ end
+end