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