# capistrano-resque could be used, but it does not support running resque as another user. # If you want to run resque as another user, setup sudo to allow running commands as that user: # deploy ALL=(foodsoft_user) NOPASSWD: ALL # and set `:run_user` to the foodsoft user. namespace :resque do %w{start stop restart}.each do |action| desc "#{action.capitalize} Resque workers" task action => ['deploy:set_rails_env'] do on roles(:resque), in: :groups do within current_path do cmd = command(:rake, "resque:#{action}_workers", "RAILS_ENV=#{fetch(:rails_env)}") if fetch(:run_user).nil? or fetch(:run_user) == local_user execute cmd else execute 'sudo', '-u', fetch(:run_user), cmd end end end end end end