다른 명령
새 문서: == 원하는 시간마다 파이썬 자동 실행되는 스케줄러 만들기 == === schedule 설치 === <source lang=python> pip install schedule </source> === schedule & time 모듈 불러오기 === <source lang=python> import schedule import time </source> === schedule 패키지 주기 설정법 === 1) 시, 분, 초 단위로 실행 <source lang=python> # 5초에 한번씩 함수 실행 schedule.every(5).seconds.do(함수) # 10분에 한번씩 함수 실행 schedule.eve... |
잔글 개발노트 양식 일괄 적용 |
||
| 1번째 줄: | 1번째 줄: | ||
{{개발노트 | |||
|요약=1) 시, 분, 초 단위로 실행 | |||
|핵심= | |||
|분야=Python | |||
|작성일=2024-10-22 | |||
}} | |||
== 원하는 시간마다 파이썬 자동 실행되는 스케줄러 만들기 == | == 원하는 시간마다 파이썬 자동 실행되는 스케줄러 만들기 == | ||
2026년 11월 12일 (목) 12:45 기준 최신판
DEVCAFE NOTE
Python1) 시, 분, 초 단위로 실행
KEY POINTS · 핵심 정리
원하는 시간마다 파이썬 자동 실행되는 스케줄러 만들기
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가지
- while문에 조건을 걸어서 무한루프를 종료시키고 파이썬 파일 종료
- sys 모듈의 exit( ) 함수로 파이썬 파일을 강제 종료
- 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)