Step Information

개요

개발자 편의성을 위하여 Step의 설정 항목을 입력받아 배치 작업 파일 템플릿을 자동으로 생성해주는 마법사를 제공한다.

설명

배치 작업 설정 항목 중 Step 내에 설정할 수 있는 기본적인 항목을 사용자가 입력하는 마법사를 제공한다.

  • 배치 작업 구성 항목 별 설명
항목설명기본값
Job ID 배치 작업 파일 생성시 하나의 프로세스를 나타내는 작업명 Step을 Add할 Job의 ID
Step Type 한번에 하나의 Step을 처리하는 Normal과 여러 쓰레드가 분산 수행되어 파일을 나눠 처리할 수 있는 Partition(File) 중 택일하여 설정 가능 Normal
Step ID 하나의 Job내부에서 독립적으로 일어나는 프로세스명 사용자 지정
next Step 혹은 Decision이 하나이상 등록되어진 상태에서 현재 등록 중인 Step 다음 수행될 Step 또는 Decision 지정 사용자 지정
Reader 입력 자원의 타입에 따라 Item을 입력받기 위한 설정 사용자 지정
Writer 출력 자원의 타입에 따라 Item을 출력하기 위한 설정 사용자 지정
Commit-Interval 한 transaction에 처리되는 자원의 양 (1이상) 사용자 지정
Step Listeners Step 수행 중 발생한 이벤트를 처리하기 위한 설정 사용자 지정
Chunk Listeners Chunk 수행 중 발생한 이벤트를 처리하기 위한 설정 사용자 지정
Shared values 하나의 Job내에 여러 Step들이 하나의 Key를 통해 정보를 공유하기 위한 Key 설정 사용자 지정

배치 작업의 구성요소에 대해 더 자세한 설명이 필요한 경우 다음을 참고한다.

주의
✔ 하나의 Job 내에 두 개 이상의 Step을 등록할 경우 반드시 Next를 지정해주어야 한다.
✔ next 등록시 무한 루프를 돌지 않도록 Step 혹은 Decision을 등록해야 한다.

  • Example: 하단의 그림 같은 경우 Step1이 FAILED 되었을 경우 Decision을 이용하여 Step2를 진행하도록 설정한 후 Step2 정상 작동 후 Step1을 진행하도록 설정한 Job이다. 이와 같은 경우 무한 루프를 돌게 된다.

✔ Spring의 경우 bean id 중복을 불허하기 때문에 전자정부 프레임워크 배치개발환경에서도 기존에 등록된 bean id의 중복 등록을 방지하고 있다.

next 설정

  • Job내에 등록된 Step 혹은 Decision간의 순차적인 흐름을 사용자가 지정할 수 있다.
  • Step과 Decision이 총 두개 이상 등록된 경우, 반드시 next를 통해 다음 진행 될 Step 혹은 Decision을 지정해줘야 한다.
  • 아래의 예시에서 SampleStep1은 다음 진행 될 Step(SampleStep2)을 next로 지정해줘야 한다.
  • SampleStep2에서는 SampleStep1을 다시 next로 지정 가능하지만 이런 경우 무한 루프의 위험이 있으므로 주의 해야한다.
  • 아래의 Step 흐름을 보면 'SampleStep1 → SampleStep2' 의 순서로 진행된다.
SampleStep1 설정 SampleStep2 설정

Shared values 설정

  1. Shared values를 사용할 경우 Shared values 탭에서 Shared values 우측의 Add를 클릭한다.


  2. 공유하고자 하는 Key를 선택 및 설정하고 OK를 클릭한다.
    ✔ Shared values란 작업간 정보 공유 관리로 Job내의 Step을 수행하던 중에 나온 결과값을 다른 Step에서 사용할 수 있다.
    ✔ Shared values는 다음과 같이 사용할 수 있다.


설정 XML 예시 보기

위의 위자드 사용 예제를 통해 Shared Value를 설정한 XML이다. XML에 보이듯이 TestStep1에서 설정한 'FlatFileItemReader.read.count'가 Key값으로 설정 되있는 것을 볼 수 있다.
결과적으로 TestStep1에서 'FlatFileItemReader.read.count' Key에 해당하는 정보를 TestStep2에서 'FlatFileItemReader.read.count' Key를 통해 사용할 수 있게 된다.

<job id="TestJob" restartable="true" xmlns="http://www.springframework.org/schema/batch">
        <step id="TestStep1" next="TestStep2">
            <tasklet>
                <chunk reader="TestJob.TestStep1.FixedFlatFileItemReader" writer="TestJob.TestStep1.DelimitedFlatFileItemWriter" commit-interval="3" />
            </tasklet>
            <listeners>
                <listener>
                    <bean class="org.springframework.batch.core.listener.ExecutionContextPromotionListener"
	 xmlns="http://www.springframework.org/schema/beans">
                        <property name="keys">
                            <list>
                                <value>FlatFileItemReader.read.count</value>
                            </list>
                        </property>
                    </bean>
                </listener>
            </listeners>
        </step>
        <step id="TestStep2">
            <tasklet>
                <chunk reader="TestJob.TestStep2.FixedFlatFileItemReader" writer="TestJob.TestStep2.DelimitedFlatFileItemWriter" commit-interval="3" />
            </tasklet>
        </step>
    </job>
 
egovframework/dev2/bdev/imp/create_batch_job_wizard/step_info_mgmt.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki