@drawoharaя ❤️ це! << натисни мене 🐛 🫖 🧚
/nicer-whenver-for-yer-railzer
опубліковано: 2014-02-28

whenever.rb - це чудовий DSL для налаштування cron-завдань у ruby ( https://github.com/javan/whenever )

однак, у нього є серйозний недолік: усі завдання, які він виконує під cron, використовують одну і ту саму unix-пріоритетність, і під 'пріоритетністю' ми маємо на увазі ту, що знесилює ваші сервери

на щастя, це легко виправити

крок перший, замініть // налаштуйте шаблони завдань у вашому ./config/schedule.rb файлі, щоб вони виглядали приблизно так

# Дізнайтесь більше: http://github.com/javan/whenever
job_type :rake, "cd :path && RAILS_ENV=:environment :environment_variable=:environment nice -n 19 bundle exec rake :task --silent :output"
job_type :runner, "cd :path && nice -n 19 ./bin/rails runner -e :environment ':task' :output"

крок другий: отримайте прибуток

для тих з вас, хто не знає, що таке unix 'nice', можливо, варто прочитати http://en.wikipedia.org/wiki/Nice_(Unix). TL;DR: це робить ваші фонові процеси такими, щоб вони не поїдали всі CPU.