В этом посте я хотел бы показать вам более удобный способ планирования задач для выполнения в определенный период времени.
Работы Cron – это команды, которые выполняются в установленном интервале времени, это может быть каждую минуту, каждый час, каждый третий день, один раз в неделю и т. Д. Иногда процесс создания и создания работы Cron может показаться утомительным и сложным. Я нашел потрясающий модуль Python для того, чтобы сделать именно то, что делает работа Cron, но в некотором смысле круче и веселее.
Модуль называется Расписание и в соответствии с его Официальная документация , он предназначен для того, чтобы быть очень понятным человеком. Вот как это выглядит:
Теперь, допустим, у нас есть реальная проблема жизни, которую мы должны решить, и продолжать делать это периодически. Например, я сделал сценарий, который проверяет на пустые папки в данном пути. Это может показаться беспорядком для тех, кто забывает удалить пустые папки, продолжает переставлять файлы и другие сценарии. Так выглядит модуль расписания в действии:
Теперь последнее, что нам нужно рассмотреть: планировщик работает только до тех пор, пока у нас открыта и работает наша программа. Когда мы закрываем или останавливаем программу, планировщик отключается и больше не проверяет интервал времени в фоновом режиме. В качестве решения для этого мы можем использовать nohup Команда, которая не означает не вновь и делает процесс невосприимчивым к пожихам (в нашем случае в потерь означает, чтобы остановить бег сценарий). У нас есть наш файл pcheduler.py, готовую с задачей, которую мы хотим выполнять на нашей временной шкале. Это те шаги, которые вы должны предпринять, чтобы получить желаемый результат:
- Установите модуль расписания через PIP, запустив
PIP установка расписания
, предпочтительно в вашей виртуальной среде - В верхней части вашего сценария добавить
#!/usr/bin/env python3
. Этот шаг необходим, если у вас есть несколько версий установленного Python, и/Usr/bin/env гарантирует, что первая интерпретатор Python в вашей переменной среды $ Path будет принят. - В терминале запустите
chmod +x scheduler.py
, который предоставит необходимые разрешения на файл для непрерывного выполнения - Запустите команду
nohup/path/to/scheduler.py &
Анкет Символ ‘&’ гарантирует, что ваш скрипт будет работать в фоновом режиме в качестве системного процесса.
Поздравляю, теперь у вас есть сценарий на заднем плане. Вы можете не стесняться закрыть терминал и делать что -то еще, пока ваш скрипт будет проверять период времени непрерывно. Если вы хотите остановить запуск сценария, вы можете перечислить процессы и найти его идентификатор с помощью команды ps ax | grep scheduler.py
который показывает вам процесс PID, а затем запустите Убить пид
Источник
Примечание: это было разработано и протестировано только в системе MacOS
Оригинал: “https://dev.to/damjand/python-scheduler-a-cron-job-replacement-54ep”