https://docs.spring.io/spring-batch/docs/current/reference/html/domain.html#domainLanguageOfBatch
The Domain Language of Batch
This section describes stereotypes relating to the concept of a batch job. A Job is an entity that encapsulates an entire batch process. As is common with other Spring projects, a Job is wired together with either an XML configuration file or Java-based co
docs.spring.io
일배치 = 일반배치 = 일괄작업
데이터를 실시간으로 처리하지 않고 정해진 시간에 한번에 처리하는 작업
우선 job을 등록한다
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
이 안에 job 리스트랑 trigger 리스트가 있다.
<property name="jobDetauls">
<list>
여기 여러 개가 올 수 있다.
<ref bean="[job이름 정해주기]">
</list>
</property>
<property name="triggers">
<list>
여기 여러 개가 올 수 있다.
트리거를 정해줘야 스케줄러가 배치를 실행한다.
여기가 없으면 실행을 안한다.
<ref bean="[trigger이름 정해주기]">
</list>
</property>
</bean>
https://groups.google.com/g/ksug/c/wxVRKTlIn3c
spring batch 관련 질문
> > > > > > > > > 음. 잘 이해가 안 가는 부분이 있습니다. > > concurrent false 인 상태에서 현재 매 시 30분에 배치가 돌고 있고, 해당 배치는 3초 정도의 시간이 소요되고 > > 종료됩니다. > > 즉, 쓰레드가
groups.google.com
Batch
사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것.
- 정기배치: 일, 주, 월과 같이 정해진 기간에 정기적으로 수행
- 이벤트성 배치: 특정 조건을 설정해두고 조건이 충족될 때만 수행
- On-Demand 배치: 사용자 요청 시 수행
Batch Scheduler (=Job Scheduler)
일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구.
특정 업무(job)를 원하는 시간에 처리할 수 있도록 지원해 Job Scheduler 라고도 불린다.
1. Spring Batch
Spring Source 사와 Accenture 사가 2007년에 공동 개발한 오픈소스 프레임워크
Job
|
수행할 작업 정의
|
Job Launcher
|
실행을 위한 인터페이스
|
Step
|
Job 처리를 위한 제어 정보
|
Job Repository
|
Step의 제어 정보를 포함하여 작업 실행을 위한 모든 정보 저장
|
2. Quartz
일괄 처리를 위한 다양한 기능을 제공하는 오픈소스 라이브러리.
- 수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공한다.
Scheduler
|
실행 환경 관리
|
Job
|
수행할 작업 정의
|
JobDetail
|
Job의 상세 정보
|
Trigger
|
Job의 실행 스케줄 정의
|
3. Cron
- 리눅스에서 일반적으로 cron 데몬이 주기적인 작업 실행을 처리한다. (cron 설정 파일은 cron table -줄여서 crontab-)
- 유닉스 계열 운영체제 시스템에서 정해진 시간에 주기적으로 작업을 수행하기 위한 데몬 프로세스
- 정기적인 작업처리를 위해 소프트웨어를 실행하도록 환경을 설정하는 job scheduer 성격의 demon process
- cron 스케줄러의 정규 표현식이 있다.
● * : 모든 값을 뜻합니다.
● ? : 특정한 값이 없음을 뜻합니다.
● - : 범위를 뜻합니다. (예) 월요일에서 수요일까지는 MON-WED로 표현
● , : 특별한 값일 때만 동작 (예) 월,수,금 MON,WED,FRI
● / : 시작시간 / 단위 (예) 0분부터 매 5분 0/5
● L : 일에서 사용하면 마지막 일, 요일에서는 마지막 요일(토요일)
● W : 가장 가까운 평일 (예) 15W는 15일에서 가장 가까운 평일 (월 ~ 금)을 찾음
● # : 몇째주의 무슨 요일을 표현 (예) 3#2 : 2번째주 수요일
● Cron Maker : http://www.cronmaker.com/
cron 표현식을 생성해줍니다
예시 1) 30 1 * * * /root/com.sh
매월 매일 1시 30분에 com.sh를 실행한다.
예시 2) 30 */3 * * * /root/com.sh
매월 매일 0:30부터 3시간마다 com.sh를 실행한다.
(0:30, 3:30, 6:30 ... 21:30)
https://m.blog.naver.com/gluestuck/221906741874
배치 프로그램(Batch Program), 배치 스케줄러(Batch Scheduler
안녕하세요! 양토리입니다. 오늘은 배치 프로그램(Batch Program)과 배치 스케줄러(Batch Scheduler)에...
blog.naver.com
https://zamezzz.tistory.com/197
[Cron] 크론(cron) 표현식 정리
■ Cron (크론) cron이란? 유닉스 계열의 잡 스케줄러 ● Cron 표현식 - 필드 Cron 스케줄러의 정규 표현식입니다. 7개의 각 필드로 구성되어 있으며, 각 필드의 내용은 아래와 같습니다. 자세한 설명은
zamezzz.tistory.com
https://spring.io/guides/gs/batch-processing/
Creating a Batch Service
this guide is designed to get you productive as quickly as possible and using the latest Spring project releases and techniques as recommended by the Spring team
spring.io