Last active
August 29, 2015 14:22
-
-
Save lorenzosinisi/b4bf72a1d9a78249cbf2 to your computer and use it in GitHub Desktop.
Use workers:clockwork:start to start clockwork or delayed_job on your server using capistrano
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# config valid only for current version of Capistrano | |
lock '3.4.0' | |
set :application, 'myapp' | |
set :repo_url, '' | |
# Default branch is :master | |
# ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp | |
# Default deploy_to directory is /var/www/my_app_name | |
set :deploy_to, '/var/www/myapp' | |
# Default value for :scm is :git | |
# set :scm, :git | |
# Default value for :format is :pretty | |
# set :format, :pretty | |
#set :linked_files, %w{config/database.yml} | |
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system} | |
# Default value for :log_level is :debug | |
# set :log_level, :debug | |
# Default value for :pty is false | |
# set :pty, true | |
# Default value for :linked_files is [] | |
# set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml') | |
# Default value for linked_dirs is [] | |
# set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system') | |
# Default value for default_env is {} | |
# set :default_env, { path: "/opt/ruby/bin:$PATH" } | |
# Default value for keep_releases is 5 | |
set :keep_releases, 3 | |
namespace :deploy do | |
desc 'Restart application' | |
task :restart do | |
on roles(:app), in: :sequence, wait: 5 do | |
execute :touch, release_path.join('tmp/restart.txt') | |
end | |
end | |
after :publishing, 'deploy:restart' | |
after :finishing, 'deploy:cleanup' | |
end | |
namespace :workers do | |
namespace :clockwork do | |
desc "Stop clockwork" | |
task :stop do | |
on roles(:app) do | |
within release_path do | |
with rails_env: fetch(:rails_env) do | |
execute :bundle, :exec, :clockworkd, "-c lib/clock.rb --pid-dir=#{cw_pid_dir} --log-dir=#{cw_log_dir} stop" | |
end | |
end | |
end | |
end | |
desc "Clockwork status" | |
task :status do | |
on roles(:app) do | |
within release_path do | |
with rails_env: fetch(:rails_env) do | |
execute :bundle, :exec, :clockworkd, "-c lib/clock.rb --pid-dir=#{cw_pid_dir} --log-dir=#{cw_log_dir} status" | |
end | |
end | |
end | |
end | |
desc "Start clockwork" | |
task :start do | |
on roles(:app) do | |
within release_path do | |
with rails_env: fetch(:rails_env) do | |
execute :bundle, :exec, :clockworkd, "-c lib/clock.rb --pid-dir=#{cw_pid_dir} --log-dir=#{cw_log_dir} start" | |
end | |
end | |
end | |
end | |
desc "Restart clockwork" | |
task :restart do | |
on roles(:app) do | |
within release_path do | |
with rails_env: fetch(:rails_env) do | |
execute :bundle, :exec, :clockworkd, "-c lib/clock.rb --pid-dir=#{cw_pid_dir} --log-dir=#{cw_log_dir} restart" | |
end | |
end | |
end | |
end | |
def cw_log_dir | |
"#{shared_path}/log" | |
end | |
def cw_pid_dir | |
"#{shared_path}/tmp/pids" | |
end | |
def rails_env | |
fetch(:rails_env, false) ? "RAILS_ENV=#{fetch(:rails_env)}" : '' | |
end | |
end | |
namespace :delayed_job do | |
def args | |
fetch(:delayed_job_args, "") #Useful for queuing on specific servers | |
end | |
def delayed_job_roles | |
fetch(:delayed_job_server_role, :app) | |
end | |
desc 'Stop the delayed_job process' | |
task :stop do | |
on roles(delayed_job_roles) do | |
within release_path do | |
with rails_env: fetch(:rails_env) do | |
execute :bundle, :exec, :'script/delayed_job', :stop | |
end | |
end | |
end | |
end | |
desc 'Start the delayed_job process' | |
task :start do | |
on roles(delayed_job_roles) do | |
within release_path do | |
with rails_env: fetch(:rails_env) do | |
execute :bundle, :exec, :'bin/delayed_job', args, :start | |
end | |
end | |
end | |
end | |
desc 'Restart the delayed_job process' | |
task :restart do | |
on roles(delayed_job_roles) do | |
within release_path do | |
with rails_env: fetch(:rails_env) do | |
execute :bundle, :exec, :'script/delayed_job', args, :restart | |
end | |
end | |
end | |
end | |
end | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment