본문 바로가기

Playlist/Spring Batch

BatchConfig

*/domain/content/global

 

import com.codeit.playlist.domain.content.batch.MovieTasklet;
import com.codeit.playlist.domain.content.batch.SportContentTasklet;
import com.codeit.playlist.domain.content.batch.TvSeriesTasklet;
import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;

@Slf4j
@Configuration
public class BatchConfig {
    @Bean
    public Job contentJob(JobRepository jobRepository, Step movieStep, Step sportStep, Step tvSeriesStep) {
        log.info("[콘텐츠 데이터 관리] contentJob 시작, contentStep : {}", movieStep);
        return new JobBuilder("contentJob",jobRepository)
                .start(movieStep)
                .next(sportStep)
                .next(tvSeriesStep)
                .build();
    }

    @Bean
    public Step movieStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, MovieTasklet movieTasklet) {
        return new StepBuilder("movieStep", jobRepository)
                .tasklet(movieTasklet, transactionManager)
                .build();
    }

    @Bean
    public Step sportStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, SportContentTasklet sportContentTasklet) {
        return new StepBuilder("sportStep", jobRepository)
                .tasklet(sportContentTasklet, transactionManager)
                .build();
    }

    @Bean
    public Step tvSeriesStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, TvSeriesTasklet tvSeriesTasklet) {
        return new StepBuilder("tvSeriesStep", jobRepository)
                .tasklet(tvSeriesTasklet, transactionManager)
                .build();
    }
}

'Playlist > Spring Batch' 카테고리의 다른 글

SportContentTasklet  (0) 2025.12.17
TvSeriesTasklet  (0) 2025.12.17
MovieTasklet  (0) 2025.12.17
ContentScheduler  (0) 2025.12.17
Spring Batch, 배치  (0) 2025.11.14