본문 바로가기
Programming/Python

[Python] 일정 시간마다 자동 실행하기 (schedule)

by 코딩하는 금융인 2022. 12. 23.

안녕하세요.

파이썬으로 일정  시간마다 자동 실행하는 코드에 대해 알아보겠습니다.

 

 schedule 패키지

▣ schedule 모듈이란?

특정한 작업 및 함수 수행을 주기적으로 실행하기 위해 사용하는 모듈

 

: schedule 패키지 함수 모음

함수 단위 함수 단위
seconds days
minutes weeks
hour 시간 monday 外 6개* 특정 요일

* 특정 요일 설정의 경우, 모두 소문자로 입력해야함.

(monday, tuesday, wednesday, thursday, friday, saturday, sunday)

 

: 실제 schedule 함수 사용하기

# 관련 패키지 및 모듈 import
import schedule
import time

# 실행할 함수 선언
def printing():
    print("..schedule on..")

# 실행 주기 설정
schedule1 = schedule.every(5).seconds.do(printing) # 초
schedule.every(1).minutes.do(printing) # 분
schedule.every(1).hour.do(printing) # 시
schedule.every(3).days.do(printing) # 일
schedule.every(3).weeks.do(printing) # 주
schedule.every(3).day.at.("15:30").do(printing) # 매일 15시 30분에 함수 실행

# 스케줄 시작 - 루프
while True:
    # 모든 schedule 기능 실행
    schedule.run_pending()
    time.sleep(5)
    
    # 모든 스케줄 3번 넘게 시행시 스케줄 종료
    count = count + 1
    if count > 3:
        schedule.cancel_job(schedule1)

 

- schedule 함수를 중지하고 싶을 때는 schedule 패키지의 cancel_job() 함수를 아래와 같이 사용하면 됨.

import schedule
import time

def message1():
    print("스케쥴 실행중...")

def message2(text):
    print(text)

# 주기 설정
job1 = schedule.every(1).seconds.do(message1)
job2 = schedule.every(2).seconds.do(message2,'2초마다 알려줄게요')


count = 0

while True:

    schedule.run_pending()
    time.sleep(1)

    count = count + 1

    if count > 5:
        schedule.cancel_job(job1)

 

Reference
반응형

댓글