deblog

[OS] 태스크 스케줄링(Task Scheduling)이란? 본문

IT

[OS] 태스크 스케줄링(Task Scheduling)이란?

스콘_ 2021. 12. 26. 14:11
반응형

태스크 스케줄링은 다중 프로그래밍을 가능하게 하는 운영체제의 동작 기법이나, 엔터프라이즈 애플리케이션의 일반적인 기능입니다.

 

태스크 스케줄링의 구성 요소

1. 태스크

특정시간에 또는 정기적으로 실행해야 하는 비즈니스 로직입니다.

ex) 이메일 알림을 고객에게 보내는 작업, 마감 업무를 수행하는 작업, 데이터 정리 작업, 데이터를 일괄적으로 갱신하는 작업 등)

 

2. 트리거(스케줄 정의)

태스크를 실행하는 특정 조건을 지정하는 역할을 합니다. 

ex) 일정한 시간 간격에 맞추거나, 특정 스케줄에 정기적으로 실행하도록(매일 밤8시, 월요일부터 금요일까지 수행하는 작업 등)

 

트리거 실행 방법

  1. 애플리케이션 배포 환경 내에 존재하는 별도의 스케줄링 시스템을 통해 외부에서 트리거 하는 것
    • ex) Control-M, CAAutoSys와 같은 상용시스템
    • 리눅스/유닉스 -> 크론탭(crontab)스케줄러 사용
    • Restful-WS 요청을 스프링 애플리케이션으로 전달해 스프링의 MVC 컨트롤러가 태스크를 트리거 하는것
    • 스프링이 제공하는 태스크 스케줄링을 사용하는 것
      • JDK 타이머 지원: 스프링은 태스크 스케줄링을 하는데 JDK Timer 객체 사용 지원
      • 쿼츠(Quartz) 연동: 쿼츠 스케줄러는 인기 있는 오픈 소스 스케줄링 라이브러리입니다.
      • 스프링 자체의 TaskSceduler 추상화: 스프링3에서 도입된 TaskScheduler 추상화는 스케줄링하는 간단한 방법을 제공하며 태스크 스케줄링에 필요한 일반적인 요구사항을 대부분 지원합니다.

 

3. 스케줄러(태스크 실행)

트리거의 정보를 기반으로 태스크를 실행합니다.

 

'IT' 카테고리의 다른 글

[WEB API] web API란?  (0) 2022.02.08
[Spring] 웹소켓(webSocket) 구현  (0) 2022.01.08
[Spring] 스프링 IoC(Inversion of Control)에 대해  (0) 2021.11.18
Comments