🐶 Посмотрим, как на самом деле работает планировщик Cron, который крутит ваши данные
Синтаксис Cron — это пять позиций (минуты, часы, дни, месяцы, дни недели)
Наш пример: 50,30 8,9 * • 30,50 — запускаем в 30 и 50 минут. • 8,9 — в 8 и 9 часов утра.
Итог: 4 запуска в утреннее время
💡Три совета, чтобы ваши дата-скрипты не падали:
1. Используйте абсолютные пути Cron запускается от имени пользователя, но его PATH сильно ограничен. Ваш скрипт не найдет библиотеку или файл, если не указать полный путь
👎python script.py
👍 /home/user/anaconda3/bin/python /home/user/data_project/etl_script.py
2. Логируйте всё (особенно ошибки) В Cron нет консоли, которую вы видите в терминале. Если скрипт упадет, вы об этом не узнаете без логов. Направляйте вывод в файл:
- /path/to/python script.py >> /path/to/logs/etl.log 2>&1 (Здесь 2>&1 склеивает обычный вывод и ошибки в один файл) 3. Спецсимволы: • * — любое значение (каждую минуту/день) • , — перечисление (как в нашем примере: 8,9) • - — диапазон (например, 1-5 в 5-й позиции для запуска только по будням) • / — шаг (например, */15 — каждые 15 минут)
🤷♀️ Важный нюанс: Файл crontab -e всегда должен заканчиваться пустой строкой. Без этого символа переноса строки последняя задача в списке может просто проигнорироваться системой
Для сложных цепочек задач лучше смотреть в сторону Airflow или Prefect, но для простых задач — Cron остается базой
А как вы автоматизируете свои рабочие процессы?