Оволодіння Cron Jobs та плануванням в Rails

pic

Cron — це утиліта командного рядка, яка планує та виконує повторювані завдання, відомі як cron jobs, у заданий час. Оскільки Cron інтегрований у системи Linux та Unix, додаткове програмне забезпечення встановлювати не потрібно. Завдання cron зазвичай визначаються в файлі, який називається crontab, що є скороченням від "Cron Table" (Таблиця Cron). Синтаксис crontab складається з п’яти полів, представлених числами, розділеними пробілами, які вказують на розклад завдання, після чого йде команда або скрипт для виконання.

Що ми розглянемо

  • Що таке Cron Jobs?
  • Основи синтаксису Cron
  • Введення в crontab
  • Налаштування Cron Jobs у Rails
  • Практичні приклади та демонстрація

Основи Cron Jobs

  • Що таке Cron Jobs?
  • Визначення: Автоматизовані завдання, що виконуються у заданий час або інтервал.
  • Використання: Резервні копії, надсилання електронних листів, оновлення даних.
  • Терміни Cron
  • Crontab: Конфігураційний файл для cron jobs.

Розуміння синтаксису Cron

  • Формат часу Cron
* * * * *  
| | | | |  
| | | | +---- День тижня (0 - 6) (Неділя = 0)  
| | | +------ Місяць (1 - 12)  
| | +-------- День місяця (1 - 31)  
| +---------- Година (0 - 23)  
+------------ Хвилина (0 - 59)
  • Приклади
  • 0 5 * * * — Виконується о 5 ранку кожного дня.
  • */15 * * * * — Виконується кожні 15 хвилин.
  • Спеціальні ключові слова
  • @reboot, @hourly, @daily, @weekly, @monthly, @yearly

Керування Cron Jobs за допомогою Crontab

  • Основні команди
  • crontab -e: Редагувати cron jobs.
  • crontab -l: Переглянути всі cron jobs.
  • crontab -r: Видалити всі cron jobs.
  • Приклади Crontab
  • Планування скриптів.
  • Направлення виведення в логи.

Інтеграція Cron Jobs у Rails

  • Виклики у Rails
  • Rails не має вбудованої підтримки для планування cron jobs.
  • Для інтеграції використовуються бібліотеки або гемів.
  • Популярні геми для планування cron
  • Whenever: Ruby гем для керування cron jobs.
  • Sidekiq або Resque (для фонових завдань, якщо cron jobs їх викликають).

Налаштування Cron Jobs за допомогою гему Whenever

  • Інсталяція
gem install whenever
  • Додайте його до вашого Gemfile:
gem 'whenever', require: false
  • Ініціалізація
  • Створення файлу config/schedule.rb.
wheneverize .
  • Приклад планування
every 1.day, at: '4:30 am' do  
 runner "MyModel.some_method"  
end  

every :hour do  
 rake "some:task"  
end
  • Оновлення Crontab
whenever --update-crontab

Висновок

  • Cron jobs — це потужний інструмент для автоматизації завдань, і з такими інструментами, як гем whenever, їх інтеграція в Rails додаток є досить простою. Дотримуючись найкращих практик та використовуючи гнучкість cron, ви можете ефективно вирішувати складні завдання з планування.

Додатково - основні моменти

  • MacOS: Ви можете використовувати crontab або створювати файли .plist для launchd.
  • Windows: Використовуйте Планувальник завдань (GUI) або schtasks через командний рядок

Перекладено з: Mastering Cron Jobs and Rails Scheduling

Leave a Reply

Your email address will not be published. Required fields are marked *