Хочет человек запускать свою функцию в 9:30 и 20:45. А ещё он пишет на Python. И начинаются варианты с time.sleep, с asyncio.sleep. Варианты с отдельными потоками или процессами. Кто-то использует сторонние модули, например schedule. Молодцы, ребята, чего уж. Много кодят ради запусков по расписанию 👍
Познавательная минутка 🤓
Запуск программ по расписанию использовался на компьютерах полсотни лет назад. Уже в 1970-х годах была программа (демон) для запуска других программ по расписанию. Вы когда-то слышали про cron? Это он претерпев несколько изменений запускает код по расписанию более 50 лет
Как вы догадались, для запуска когда по расписанию не нужно изобретать сложные Python костыли и велосипеды. Вводим в терминале
crontab -e и добавим пару строк в конец файла:30 9 * * * python /path/to/project.py
45 20 * * * python /path/to/project.py
Ура! Python файл project будет автоматически запущен дважды в сутки, в 9:30 (строка 1) и в 20:45 (строка 2) 😉
Заметили пустую строку после примера в cron? Как и Python фалы, файл crontab должен заканчиваться пустой строкой. Но в отличии от доброго Python, cron не прощает ошибки. Если пустой строки нет, cron проигнорирует последнюю. Ту, где запуск в 20:45.
P.S. Может ситуацию с последней пустой строкой и пофиксили. Но я за пару десятилетий привык её добавлять. Кому интересно, проверяйте, пишите результат в комментариях ✍️
#bash #crontab