「매일 9시에 실행」, 「30분마다 체크」 같은 시간 기반 자동화는 두 가지 갈래입니다.
1) 운영체제의 cron·작업 스케줄러를 쓰는 외부 방식, 2) 파이썬 안에서 스케줄러를 돌리는 내부 방식.
둘은 용도가 다릅니다.
schedule — 가장 간단한 라이브러리.
import schedule, time.
schedule.every().day.at("09:00").do(send_report).
schedule.every(30).minutes.do(check).
while True: schedule.run_pending(); time.sleep(1).
한 페이지에 끝나는 단순함.
APScheduler — 강력한 옵션.
간격·날짜·cron 표현식 모두 지원.
영속성(작업을 DB에 저장해 재시작에도 유지), 분산 실행도 가능.
마이크로서비스에서 「작업 큐 + 스케줄러」 통합으로 자주 사용.
schedule와 APScheduler는 「프로세스가 살아 있어야」 동작합니다.
서버가 죽거나 재시작되면 멈춤.
장기 운영은 systemd·supervisor 같은 프로세스 관리자가 필수.
운영체제 cron이 가장 안정적.
시스템이 살아 있으면 무조건 실행되고, 시스템 부팅 시 자동 재개.
매일 1회·시간당 1회 같은 단순한 작업은 cron + 파이썬 스크립트가 가장 신뢰성 높습니다.
한 줄 요약
파이썬 내부 스케줄러는 schedule(단순)·APScheduler(강력).
프로세스가 살아 있어야 동작.
단순 주기 작업은 OS cron이 가장 안정적.
더 알아볼 것
- cron 표현식 문법
- systemd timer — cron 대안
- Celery Beat — 분산 스케줄러