Commit f6f45b67
Changed files (2)
config
recipes
templates
config/recipes/templates/delayed_job_init.erb
@@ -0,0 +1,46 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: delayed_job
+# Required-Start: $all
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+### END INIT INFO
+set -e
+
+N=/etc/init.d/delayed_job_<%= application %>
+app_root=<%= current_path %>
+user=<%= user %>
+service="delayed_job"
+
+usage() {
+ echo "Usage: $N {start|stop|status|restart|force-reload} <environment>" >&2
+ exit 1
+}
+
+set -e
+
+#[ -n "$2" ] || usage
+
+#rails_env="$2"
+rails_env=PRODUCTION
+
+interact() {
+ op="$1"
+ echo "$1ing $service"
+ su - -c "cd $app_root; RAILS_ENV=<%= rails_env %> bundle exec script/delayed_job $op" $user
+}
+
+case "$1" in
+ start|stop|status)
+ interact "$1"
+ ;;
+ reload|restart|force-reload)
+ interact restart
+ ;;
+ *)
+ usage
+ ;;
+esac
+
+exit 0
config/recipes/delayed_job.rb
@@ -1,9 +1,17 @@
namespace :delayed_job do
+ desc "setup delayed job"
+ task :setup, roles: :app do
+ template "delayed_job_init.erb", "/tmp/delayed_job_init"
+ run "chmod +x /tmp/delayed_job_init"
+ run "#{sudo} mv /tmp/delayed_job_init /etc/init.d/delayed_job_#{application}"
+ run "#{sudo} update-rc.d -f delayed_job_#{application} defaults"
+ end
+ after "deploy:setup", "delayed_job:setup"
+
%w[start stop restart].each do |command|
desc "#{command} delayed_job"
- task command, :roles => :app do
- #run "chmod +x #{current_path}/script/restart_delayed_job"
- run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job #{command}"
+ task command, roles: :app do
+ run "#{sudo} service delayed_job_#{application} #{command}"
end
after "deploy:#{command}", "delayed_job:#{command}"
end