Автор оригинала: Shubham Sayon.
Резюме: Чтобы получить Cron, как планировщик в Python, вы можете использовать один из следующих способов:
- Использовать
Расписаниемодуль - Использовать
Apscheduler - Использовать
Timeloopбиблиотека - Использовать
Crontabмодуль
Cron (Также называется работой CRON) – это программная утилита, которая помогает пользователю планировать задачи в Unix-подобных системах. Задачи в Cron присутствуют в текстовом файле, который содержит команды, которые будут выполнены для запланированной задачи, чтобы работать. Название этого файла crontab. Чтобы узнать больше о планировщике кукурузы, вы можете обратиться к этому ссылка Отказ
В этой статье мы сосредоточимся на обсуждении того, как мы можем использовать Функции крон, как планировщик в Python, чтобы управлять запланированными заданиями. Поэтому без дальнейшей задержки, давайте перепрыгнем в нашу миссию – критический вопрос:
Проблема: Учитывая запланированную работу; Как установить Cron, как планировщик для работы с помощью Python?
Пример: Учитывая текстовый файл ( test.txt ) и сценарий Python ( test.py ). Как запланировать задачу в Python, чтобы сценарий Python может быть запущен по запланированным интервалам?
Сценарий Python выглядит следующим образом:
from datetime import datetime
myFile = open('test.txt', 'a')
myFile.write('\nAccessed on ' + str(datetime.now()))
myFile.close()После выполнения определенной запланированной задачи в Python желаемый выход:
Теперь, когда у нас есть обзор нашего заявления о проблеме, давайте перепрыгнум в вероятные решения:
Метод 1: Использование API расписания
Расписание Является планировщиком в процессе, который предоставляет очень удобный синтаксис для планирования задач с помощью Python. Некоторые из его основных функций включают в себя:
- Совместим с Python 2.7, 3,5 и 3.6 Отказ
- Простой синтаксис и простой в использовании API.
- Легкий.
- Нет внешних зависимостей.
С Расписание Не является частью стандартной библиотеки Python, вы должны установить его, используя следующую команду:
$ pip install schedule
Давайте посмотрим на следующую программу, чтобы увидеть, как мы можем использовать Расписание Модуль, чтобы расписание задач:
import schedule
import time
from os import system
def job():
system('python test.py')
# schedule the job to run at intervals of 1 min
schedule.every(1).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)Выход
Способ 2: Использование расширенного планировщика Python
Расширенный планировщик Python (APSCHEDULER) – это легкий и мощный планировщик задач, который помогает нам запускать рутинные задания. Ключевые особенности apscheduler:
- Не включает внешние зависимости.
- Доступно и проверено на CPYthon 2.5 – 2.7, 3.2 – 3.3, Jython 2.5.3, Pypy 2.2
- Несколько, одновременно активных рабочих магазинов – RAM, простая база базы данных, SQLalchemy, MongoDB, Redis.
- Безопасная потока API
Он обеспечивает три основных настраиваемых механизма:
- Понравившийся
- Задержка планирования односпальных заданий (например, Unix «AT» Command)
- Интервал (запустить задание в указанные интервалы времени)
Чтобы иметь возможность использовать APSCHeduler, модуль APSCHEDULER должен быть установлен, поскольку он не является частью обычной библиотеки Python. Используйте следующую команду для установки его:
$ pip install apscheduler
Следующая программа демонстрирует, как мы можем использовать APSCheduler для запуска Cron, как рабочие места в Python (пожалуйста, следуйте комментариям в коде, приведенном ниже, чтобы получить лучшее сцепление на концепцию):
import time
import os
from apscheduler.schedulers.background import BackgroundScheduler
def job():
os.system('python test.py')
if __name__ == '__main__':
# creating the BackgroundScheduler object
scheduler = BackgroundScheduler()
# setting the scheduled task
scheduler.add_job(job, 'interval', minutes=1)
# starting the scheduled task using the scheduler object
scheduler.start()
try:
# To simulate application activity (which keeps the main thread alive).
while True:
time.sleep(1)
except (KeyboardInterrupt, SystemExit):
# Not strictly necessary but recommended
scheduler.shutdown()Выход
Способ 3: Использование библиотеки TimeLoop
Еще один способ выполнения запланированных задач – библиотека Timeloop. Если вы ищете что-то простое, что может быть реализовано в вашей сети или автономной приложении, то Timeloop может быть хорошим выбором. Однако, если вы намереваетесь работать со сложными операциями, эта библиотека не рекомендуется.
Используйте следующую команду для установки Timeloop библиотека.
$ pip install timeloop
Давайте посмотрим на следующий код, чтобы понять, как Timeloop работает:
from os import system
import time
from timeloop import Timeloop
from datetime import timedelta
tl = Timeloop()
@tl.job(interval=timedelta(seconds=10))
def train_model():
system('python test.py')
tl.start()
while True:
try:
time.sleep(1)
except KeyboardInterrupt:
tl.stop()
breakВыход
Метод 4: Использование модуля Crontab
Crontab Модуль использует прямое API для чтения и записи файлов Crontab и автоматически обращаться к системе CRON. Crontab не является частью стандартной библиотеки Python и должна быть установлена вручную, используя Пип команда.
Следующий синтаксис можно использовать для установки модуля Crontab в вашей системе:
$ pip install python-crontab
Давайте понять, как модуль Crontab работает в пошаговом подходе:
Шаг 1 : Получение доступа к Crontab
Есть пять способов доступа к Crontab с помощью модуля CRON в Python. Среди них три метода работают в средах на основе UNIX, и требуют необходимых разрешений, в то время как оставшиеся два метода будут работать в Windows.
Методы конкретных UNIX:
- Cron ()
- cron (user = true)
- cron (user = ‘username’)
Две другие способы, которые работают для Windows, а также:
- file_cron (tabfile = ‘filename.tab’)
- mem_cron (Tab = “” “* * * * * * Команда” “”)
Шаг 2: Создание новой работы
Создание новой работы очень прост и может быть дона, используя следующую команду:
job = cron.new(command='/usr/bin/echo')
Шаг 3: Установка определенных ограничений
Crontab Модуль предоставляет нам возможность установить временные ограничения на задания, не используя синтаксис Cron.
Ограничения заданий могут быть установлены с использованием следующих команд:
# to run the job every minute
job.minute.every(1)
# to schedule hourly jobs
job.hour.every(4)
# to run jobs on certain days of week
job.dow.on('SUN', 'THU')
# to schedule tasks/jobs on specific months
job.month.during('APR', 'NOV')Каждое ограничение очистит предыдущее ограничение. Если вы хотите очистить все ограничения заданий, вы можете использовать команду:
job.clear()
Теперь давайте посмотрим на разные варианты, которые мы можем использовать в Crontab Модуль ( Пожалуйста, следуйте за комментариями для понимания значимости каждой команды) :
# enable a job:
job.enable()
# disable a job:
job.enable(False)
# to check if a task is enabled or disabled:
job.is_enabled()
# Chek whether a task is valid or not
job.is_valid()
# List all available cron jobs
for job in cron:
print job
# Finding a cron job
cron.find_command("command") # Find according to command
cron.find_comment("comment") # Find according to comment
cron.find_time(time schedule) # Find according to time
# Removing a Job
cron.remove(job)
# Defining Environmental Variables
job.env['VARIABLE_NAME'] = 'Value'Теперь, когда у нас есть обзор Crontab Модуль и его функциональные возможности, давайте посмотрим на следующий код, чтобы понять, как он работает:
from crontab import CronTab cron = CronTab(user='finxter') job = cron.new(command='python test.py') job.minute.every(1) cron.write()
Заключение
Таким образом, в этой статье мы изучили различные методы, которые можно использовать, чтобы получить, как Cron, такой как планировщик в Python. Это были:
- Использование
расписание - Использование
Apscheduler - Использование
петля времени - Использование
Crontabмодуль
Я надеюсь, что вы узнали что-то из этой статьи, и это поможет вам в вашем путешествии по кодированию. Пожалуйста, оставайтесь настроенными для более интересных статей!
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.
Вы можете связаться со мной @: