본문 바로가기

개발/Python

[Python] 스케줄링을 위한 schedule 모듈 사용법

반응형

schedule 모듈은 간단하고 인간 친화적인 문법으로 주기적인 작업을 스케줄링할 수 있는 라이브러리입니다. 예를 들어, 매일 오전 10시에 특정 함수를 실행하거나, 매주 월요일에 파일을 백업하는 등의 작업을 쉽게 구현할 수 있습니다.

schedule 모듈을 사용하려면 먼저 pip 명령어로 설치해야 합니다.

pip install schedule

그 다음, schedule 모듈을 임포트하고, 원하는 작업을 정의한 함수를 만듭니다. 예를 들어, 현재 시간을 출력하는 함수를 만들어 보겠습니다.

import schedule
import time

def print_time():
    print("현재 시간은", time.ctime())

이제 schedule 모듈의 메서드를 사용하여 작업을 스케줄링할 수 있습니다. schedule 모듈은 다양한 메서드를 제공하는데, 대표적인 것은 다음과 같습니다.

  • schedule.every(interval).seconds : interval 초마다 작업을 실행합니다.
  • schedule.every(interval).minutes : interval 분마다 작업을 실행합니다.
  • schedule.every(interval).hours : interval 시간마다 작업을 실행합니다.
  • schedule.every().day.at(time) : 매일 time 시간에 작업을 실행합니다. time은 문자열로 표현하며, 24시간 형식을 사용합니다. 예를 들어, '10:00'은 오전 10시를 의미합니다.
  • schedule.every().monday.at(time) : 매주 월요일 time 시간에 작업을 실행합니다. time은 위와 같은 방식으로 표현합니다. 월요일 대신 다른 요일도 사용할 수 있습니다.
  • schedule.every(interval).days.at(time) : interval 일마다 time 시간에 작업을 실행합니다. time은 위와 같은 방식으로 표현합니다.

이러한 메서드들은 체인 방식으로 연결할 수 있으며, 마지막에 do(job) 메서드를 사용하여 실행할 함수를 지정합니다. 예를 들어, 매일 오전 10시에 현재 시간을 출력하는 작업을 스케줄링하려면 다음과 같이 작성할 수 있습니다.

schedule.every().day.at("10:00").do(print_time)

스케줄링된 작업들은 schedule.run_pending() 메서드를 호출할 때 실행됩니다. 이 메서드는 현재 시간과 스케줄링된 시간을 비교하여, 실행할 작업이 있으면 실행하고, 없으면 아무 일도 하지 않습니다. 따라서, 이 메서드를 주기적으로 호출하기 위해 무한 루프와 time.sleep(delay) 함수를 사용합니다. time.sleep(delay) 함수는 delay 초 동안 프로그램을 일시 정지합니다. 예를 들어, 1초마다 schedule.run_pending() 메서드를 호출하려면 다음과 같이 작성할 수 있습니다.

while True:
    schedule.run_pending()
    time.sleep(1)

이제 전체 코드를 실행하면, 매일 오전 10시에 현재 시간이 출력됩니다. 예를 들어, 2024년 1월 15일 오전 10시에 실행한 결과는 다음과 같습니다.

현재 시간은 Mon Jan 15 10:00:00 2024

이상으로 파이썬에서 schedule 모듈을 사용하는 방법에 대해 알아보았습니다. schedule 모듈은 간단하지만 강력한 기능을 제공하므로, 여러분의 프로젝트에 적용해 보시기 바랍니다. 감사합니다.

반응형

자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!