Skip to content

Instantly share code, notes, and snippets.

@seyhunak
Created February 19, 2014 08:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seyhunak/9088289 to your computer and use it in GitHub Desktop.
Save seyhunak/9088289 to your computer and use it in GitHub Desktop.
Sidekiq - Background jobs - Rake - Inıt Script
### /script/background_jobs
#!/usr/bin/env bash
cd $(dirname $0)/..
app_root=$(pwd)
sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid"
sidekiq_logfile="$app_root/log/sidekiq.log"
app_user=$(ls -l config.ru | awk '{print $3}')
function stop {
bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1
}
function killall {
pkill -u $app_user -f sidekiq
}
function restart {
if [ -f $sidekiq_pidfile ]; then
stop
fi
killall
start_sidekiq -d -L $sidekiq_logfile
}
function start_no_deamonize {
start_sidekiq
}
function start_sidekiq {
bundle exec sidekiq -q default,watch,competition,interest,flickr,tips,media,placephoto,zip,customer_export,top_places,checkin,analytics,analytic,facebook,notification,twitter,yelp,newsletter -e $RAILS_ENV -P $sidekiq_pidfile $@ >> $sidekiq_logfile 2>&1
}
case "$1" in
stop)
stop
;;
start)
restart
;;
start_no_deamonize)
start_no_deamonize
;;
restart)
restart
;;
killall)
killall
;;
*)
echo "Usage: RAILS_ENV=your_env $0 {stop|start|start_no_deamonize|restart|killall}"
esac
### /lib/tasks/sidekiq.rake
namespace :sidekiq do
desc "Stop sidekiq"
task :stop do
system "script/background_jobs stop"
end
desc "Start sidekiq"
task :start do
system "script/background_jobs start"
end
desc 'Restart sidekiq'
task :restart do
system "script/background_jobs restart"
end
desc "Start sidekiq with launchd on Mac OS X"
task :launchd do
system "script/background_jobs start_no_deamonize"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment