Python의 Cron과 같은 일정
이 튜토리얼에서는 Linux의 cron
작업과 유사한 작업 스케줄링에 대해 설명합니다. 먼저 schedule
모듈을 살펴보고 진행 중인 일정에서 작업을 예약합니다.
Python의 cron
및 scheduler
모듈
Python은 작업을 자동으로 예약할 수 있는 여러 패키지를 제공합니다. 이러한 패키지에는 일정
및 시간
이 포함됩니다.
cron
은 작업을 예약하고 자동화하는 데 사용됩니다. 예를 들어 특정 시간 간격이 지나면 특정 작업이 자동으로 실행되기 시작합니다.
수동 개입 없이 정기적으로 많은 작업을 수행해야 하는 경우가 많습니다. 태스크 스케줄러를 사용하여 이를 달성할 수 있습니다.
예약은 종종 데이터베이스에 저장된 데이터를 관리하는 데 도움이 됩니다. 또한 필요에 따라 주기적으로 데이터를 가져올 수 있습니다.
Python의 schedule
모듈은 구성에 따라 실행할 작업을 예약하는 정교한 일정 모듈입니다.
cron
은 시간 기반 스케줄러입니다. 주기적으로 수행해야 하는 작업을 예약하는 데 도움이 됩니다. Linux cron
유틸리티의 일부인 crontab
파일에는 예약된 작업 목록이 포함되어 있습니다.
cron
에서 작업을 예약하려면 Bash 명령 crontab -e
또는 Python의 python-crontab
모듈을 사용하여 이 파일을 직접 편집할 수 있습니다. 그러나 Windows 운영 체제에서는 이러한 스케줄링 체계를 사용할 수 없습니다.
schedule
은 시스템의 시간 간격에 따라 작동하는 라이브러리입니다. 프로세스 내 스케줄러 역할을 하며 거의 모든 운영 체제에서 작동합니다.
하루 또는 일주일의 특정 시간과 같이 다양한 시간 간격으로 특정 작업을 예약하는 데 도움이 됩니다. 이제 새로운 파이썬 프로젝트를 생성하는 것부터 시작하겠습니다.
schedule
모듈을 사용하여 작업 예약
아래 지침에 따라 새 Python 프로젝트를 만듭니다.
-
첫 번째 단계는 아나콘다 프롬프트를 설치하는 것입니다.
-
그런 다음 프롬프트 화면에 Jupyter notebook을 입력합니다.
-
브라우저에 Jupyter 노트북의
홈
페이지가 표시됩니다. -
새로 만들기
를 클릭한 다음Python 3
파일을 만듭니다. -
다음과 같이 Python 파일이 나타납니다.
-
schedule
모듈의 기능을 사용하기 전에schedule
모듈을 먼저 설치해야 합니다.pip install schedule
-
필요한 모듈을 가져온 후 작업을 만들고
예약
하는 코드를 살펴보겠습니다.import schedule import time def job(): print("Reading time...") def coding(): print("Programming time...") def playing(): print("Playing time...") # Time schedule.every(5).seconds.do(job) schedule.every(2).minutes.do(coding) schedule.every().day.at("10:57").do(playing) while True: schedule.run_pending() time.sleep(1)
이 코드에는 세 가지 작업이 정의되어 있습니다. 첫 번째 작업
읽기 시간
은5
초마다 반복되고 두 번째 작업코딩
은2
분마다 반복되며 마지막 작업은 특정 시간이 되면 반복됩니다.while
루프의Schedule.run_pending()
함수는 실행 대기 중인 예약된 작업이 있는지 여부를 확인합니다. 실행될 때time.sleep(1)
함수는 보류 중인 작업을 확인하기 위해일정
을 1초 동안 지연시킵니다.출력:
또한 스케줄러에게 몇 시간 또는 몇 분 후에 특정 작업을 수행하도록 요청할 수 있습니다. 예를 들어
schedule.every(5).hours.do(job)
문은5
시간마다 작업을 반복합니다.