APScheduler
Scheduling
Stack
Django
django-apscheduler
webdriver-manager
selenium
beautifulsoup4
mongo db
Batch scheduler
스케줄러 (Scheduler)
일반적인 스케줄러는 특정 시간에 작업을 자동으로 실행하는 시스템입니다. 이 작업들은 일반적으로 반복적이거나 주기적인 일일 수 있습니다. 스케줄러는 다양한 작업을 처리할 수 있으며, 작업이 단일 프로세스 또는 간단한 작업일 수 있습니다.
용도: 주기적인 데이터 백업, 로그 정리, 보고서 생성 등
특징:
작업이 단일 프로세스인 경우가 많음
작업이 상대적으로 간단하고 짧은 시간 내에 완료됨
작업을 특정 시간에 실행
예시:
Cron (Linux/Unix)
Windows Task Scheduler
배치 스케줄러 (Batch Scheduler)
배치 스케줄러는 대량의 데이터를 처리하거나 복잡한 작업을 일괄적으로 처리하는 시스템입니다. 배치 작업은 일반적으로 리소스를 많이 소비하며, 긴 시간이 걸릴 수 있습니다. 배치 스케줄러는 이러한 작업을 효율적으로 관리하고 실행하는 데 사용됩니다.
용도: 대규모 데이터 처리, 대규모 데이터 마이그레이션, 월간 보고서 생성 등
특징:
작업이 여러 단계로 구성될 수 있으며, 각 단계는 독립적으로 실행될 수 있음
작업이 길게 실행되거나 많은 리소스를 요구할 수 있음
작업의 순차적 실행 및 의존성 관리
오류 발생 시 재시작 또는 재실행 기능 제공
예시:
Apache Airflow
Spring Batch
AWS Batch
차이점 요약
복잡성:
스케줄러는 일반적으로 단순하고 반복적인 작업을 처리.
배치 스케줄러는 복잡하고 리소스가 많이 필요한 작업을 일괄 처리.
작업 유형:
스케줄러는 단일 프로세스 또는 간단한 작업에 적합.
배치 스케줄러는 여러 단계로 구성된 복잡한 작업이나 대량의 데이터를 처리하는 작업에 적합.
실행 시간:
스케줄러는 짧은 시간 내에 완료되는 작업을 주로 처리.
배치 스케줄러는 긴 시간이 걸리는 작업을 처리.
의존성 관리:
스케줄러는 일반적으로 작업 간의 의존성 관리가 필요하지 않음.
배치 스케줄러는 작업 간의 의존성을 관리하고, 순차적 실행을 지원.
결론
스케줄러와 배치 스케줄러는 모두 자동화된 작업 실행을 지원하지만, 그 목적과 사용 사례가 다릅니다. 일반적인 스케줄러는 단순하고 반복적인 작업에 적합한 반면, 배치 스케줄러는 복잡하고 대규모의 작업을 효율적으로 처리하는 데 사용됩니다.
Ref
Last updated