Как управлять задачами cron с помощью Capistrano для NodeJS проектов
Я уже рассказывал о том как доставлять NodeJS проект на сервер с помощью Capistrano, теперь я расскажу как можно управлять задачами cron с помощью все того же Capistrano.
Для начала нам понадобится whenever — это замечательная библиотека для удобной работы с задачами крона. Библиотека написана на Ruby, но так как у вас уже стоит Capistrano это не должно быть проблемой. Устанавливаем:
gem install whenever
Чтобы создать структуру для работы с whenever, вызываем в кроне вашего проекта следующую команду:
wheneverize .
В проект будет добавлен один единственный файл config/schedule.rb, именно в нем будут описаны все задачи для исполения кроном. Для примера хочу показать как с помошью whenever можно запускать CoffeeScript файлы.
Смотреть пример schedule.rb на GitHub Gist.
То есть, каждые 2 часа из папки проекта будет запущен файл import.coffee. Больше примеров по работе с whenever можно посмотреть здесь.
Теперь нам осталось обновить config/deploy.rb, который мы разобрали в прошлый раз, и добавить в него два новых этапа, это task :update_crontab и task :clear_crontab. Результат:
Смотреть пример deploy.rb на GitHub Gist.
Думаю доставка ваших приложений с whenever будет еще проще, ведь теперь вы можете удаленно управлять кроном.
Комментировать