Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
namespace :delayed_job do
task :myrestart do
stop
enforce_stop_delayed_job
run "cd #{current_path}/ && rake jobs:restart"
start
end
def enforce_stop_delayed_job
run %Q{
lsof '#{current_path}/log/delayed_job.log' | awk '/^ruby/ { system("kill " $2) }' ;
COUNT=1;
until [ $COUNT -eq 0 ]; do
COUNT=`lsof '#{current_path}/log/delayed_job.log' | grep '^ruby' |wc -l` ;
echo 'waiting for delayed_job to end' ;
sleep 2 ;
done
}.split("\n").join('')
end
end
run "monit restart delayed_job.0 delayed_job.1 delayed_job.2 delayed_job.3"
Обработка большого количества задач при помощи delayed_job