include ::Capistrano::Runit
include ::Capistrano::Runit::ResqueHelper
namespace :load do
task :defaults do set :runit_resque_scheduler_default_hooks, -> { true } set :runit_resque_scheduler_role, -> { :app } set :runit_resque_scheduler_dynamic, -> { false } end
end
namespace :deploy do
before :starting, :runit_check_resque_schduler_hooks do invoke 'runit:resque_scheduler:add_default_hooks' if fetch(:runit_resque_scheduler_default_hooks) end
end
namespace :deploy do
before :starting, :runit_check_resque_scheduler_hooks do invoke 'runit:resque_scheduler:add_default_hooks' if fetch(:runit_resque_scheduler_default_hooks) end
end
namespace :runit do
namespace :resque_scheduler do # Helpers def resque_scheduler_enabled_service_dir enabled_service_dir_for('resque_scheduler') end def resque_scheduler_service_dir service_dir_for('resque_scheduler') end def collect_resque_scheduler_run_command array = [] array << env_variables array << "RAILS_ENV=#{resque_environment}" array << "INTERVAL=#{fetch(:runit_resque_interval)}" array << 'VERBOSE=1' if fetch(:runit_resque_verbose) array << 'DYNAMIC_SCHEDULE=yes' if fetch(:runit_resque_scheduler_dynamic) array << "exec #{SSHKit.config.command_map[:rake]} #{"environment" if fetch(:runit_resque_environment_task)} resque:scheduler" array << output_redirection array.compact.join(' ') end task :add_default_hooks do after 'deploy:check', 'runit:resque_scheduler:check' after 'deploy:updated', 'runit:resque_scheduler:stop' after 'deploy:reverted', 'runit:resque_scheduler:stop' after 'deploy:published', 'runit:resque_scheduler:start' end task :check do check_service('resque_scheduler') end desc 'Setup resque_scheduler runit service' task :setup do setup_service('resque_scheduler', collect_resque_scheduler_run_command) end desc 'Enable resque_scheduler runit service' task :enable do enable_service('resque_scheduler') end desc 'Disable resque_scheduler runit service' task :disable do disable_service('resque_scheduler') end desc 'Start resque_scheduler runit service' task :start do start_service('resque_scheduler') end desc 'Stop resque_scheduler runit service' task :stop do stop_service('resque_scheduler', false) end desc 'Restart resque_scheduler runit service' task :restart do restart_service('resque_scheduler') end end
end