Рубрики
Без рубрики

Планировщик Python: замена работы Cron

В этом посте я хотел бы показать вам более удобный способ планирования задач для выполнения на данном … Tagged с Python.

В этом посте я хотел бы показать вам более удобный способ планирования задач для выполнения в определенный период времени.

Работы 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”