메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

스케줄러 만들기

데브카페

원하는 시간마다 파이썬 자동 실행되는 스케줄러 만들기

schedule 설치

pip install schedule

schedule & time 모듈 불러오기

import schedule
import time

schedule 패키지 주기 설정법

1) 시, 분, 초 단위로 실행

# 5초에 한번씩 함수 실행
schedule.every(5).seconds.do(함수)

# 10분에 한번씩 함수 실행
schedule.every(10).minutes.do(함수)

# 2시간에 한번씩 함수 실행
schedule.every(2).hour.do(함수)

2) 일, 주 단위로 실행


# 3일에 한번씩 함수 실행
schedule.every(3).days.do(함수)

# 2주에 한번씩 함수 실행
schedule.every(2).weeks.do(함수)

3) 매일 정해진 시각에 실행


# 매일 13시 30분에 함수 실행
schedule.every().day.at("13:30").do(함수)

# 매일 "11:11:11"에 함수 실행
schedule.every().day.at("11:11:11").do(함수)

4) 매주 정해진 요일의 특정 시각에 실행

  • 모두 소문자로 입력하는 점 주의
(monday, tuesday, wednesday, thursday, friday, saturday, sunday)

# 매주 월요일 13시 30분에 함수 실행
schedule.every().monday.at("13:30").do(함수)

schedule 패키지 실행

  • step4의 무한루프 코드를 넣어주지 않으면 파이썬 파일이 종료되면서 바로 스케쥴링도 작동하지 않음.

step1.관련 패키지 및 모듈 import

import schedule
import time

step2.실행할 함수 선언

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

step3.실행 주기 설정

schedule.every(1).seconds.do(message1)

step4.스캐쥴 시작


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

schedule 중지

  • schedule을 중지하는 법은 3가지
  1. while문에 조건을 걸어서 무한루프를 종료시키고 파이썬 파일 종료
  2. sys 모듈의 exit( ) 함수로 파이썬 파일을 강제 종료
  3. 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)

Comments