Home

0

Spring Batch - 16. SimpleJob 와 SimpleJobLauncher

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing SimpleJob Step 을 실행시킬 수 있는 Job 의 구현체로서 SimpleJobBuilder 에 의해 생성된다. 하나 이상의 Step 으로 구성되며 순차적으로 Step 을 실행시킨다. 모든 Step 의 실행이 성공적으로 완료 돼야 Job 이 최종적으로 성공 상태가 된다. SimpleJob 메소드 start 최초로 한번 설정 한 후 SimpleJobBuilder 가 생성되고 반환된다. next 다음 실행할 step 들을 순차적으로 연결하도록 설정 validator Job 실행에 필요한 Parameter 를 검증 DefaultJobParametersValidator 구현체를 지원하며 JobParametersValidator 인터페이스를 직접 구현할 수 있다. preventRestart Job 의 재실행을 방지 하는 설정 incrementer JobParameter 에서 필요한 값을 증가 시켜 다음에 사용할 JobParameter 오브젝트를 리턴 RunIdIncrementer 구현체를 지원하며 JobParametersIncrementer 인터페이스를 직접 구현할 수 있다.

0

Maven - Settings.xml

참고 Maven 공시 Document https://maven.apache.org/settings.html Settings.xmlSettings.xml 은 Pom.xml 과 같이 Maven 실행에 있어 필요한 요소들을 정의하는 파일이다. 다만 Pom.xml 과 달리 Local Repository 의 위치 Remote Repository 의 위치 혹은 인증 정보와 같은 민감한 정보를 갖고 있기 때문에 프로젝트의 번들로서 제공되거나 배포되서는 안된다. Settings.xml 구성 요소<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/></settings> localRepositoryinteractiveMode

0

Spring Batch - 15. JobBuilderFactory & JobBuilder

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing JobBuilderFactory JobBuilder 객체를 생성하는 팩토리 클래스 jobBuilderFactory.get(“jobName”) “jobName” 은 스프링 배치가 Job 을 실행시킬때 참조하는 Job 이름 “jobNaem” 은 DB 에도 저장된다. JobBuilderFactory.java public class JobBuilderFactory { private JobRepository jobRepository; public JobBuilderFactory(JobRepository jobRepository) { this.jobRepository = jobRepository; } public JobBuilder get(String name) { // JobBuilder 클래스가 생성되는 시점에 JobRepository 객체가 전달된다. JobBuilder builder = new JobBuilder(name).repository(jobRepository); return builder; }} JobBuilder

0

Spring Batch - JobRegistry

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing JobRegistry JobRegistry 는 JobLauncher가 실행할 수 있는 Job을 등록하고 관리하는 인터페이스, JobRegistry는 일반적으로 JobLauncher를 생성하는 데 사용됩니다. JobRegistry를 사용하면 JobLauncher가 실행할 수 있는 Job을 등록하고, 실행 시간에 등록된 Job을 선택할 수 있습니다. JobRegistry는 다양한 방법으로 구현될 수 있으며, XML 파일, 데이터베이스, 자바 구성 등에서 Job을 등록할 수 있습니다. JobRegistry는 Spring Batch에서 Job을 실행하는 방법 중 하나입니다. 다른 방법으로는 JobRepository를 사용하여 Job을 저장하고, JobOperator를 사용하여 Job을 실행하는 방법이 있습니다. JobRegistry는 JobLauncher를 생성하는 데 사용되며, JobLauncher는 Job을 실행합니다. JobRegistry는 Spring Batch에서 Job의 관리 및 실행을 간편하게 할 수 있는 기능을 제공합니다. JobRegistry를 사용하면 Job을 등록하여 여러 Job을 실행할 수 있고, Job을 실행할 때마다 새로운 Job을 만들 필요가 없습니다. 또한 JobRegistry를 사용하면 JobLauncher를 생성하는 과정을 단순화할 수 있습니다.

0

Spring Batch - 14. 배치 초기화 설정 (application.properties)

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing BatchAutoConfiguration BatchAutoConfiguration 에서는 ApplicationRunner 의 일종인 JobLauncherApplicationRunner 를 생성한다. BatchAutoConfiguration은 @EnableBatchProcessing 어노테이션을 사용하여 활성화됩니다. BatchAutoConfiguration.java public class BatchAutoConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix = "spring.batch.job", name = "enabled", havingValue = "true", matchIfMissing = true) public JobLauncherApplicationRunner jobLauncherApplicationRunner(JobLauncher jobLauncher, JobExplorer jobExplorer, JobRepository jobRepository, BatchProperties properties) { // JobLauncher 객체와 JobExplorer 객체와 JobRepository 객체를 이용해 JobLauncherApplicationRunner 객체를 생성한다. JobLauncherApplicationRunner runner = new JobLauncherApplicationRunner(jobLauncher, jobExplorer, jobRepository); // Application Properties 에 등록된 Job 이름들을 가져온다. String jobNames = properties.getJob().getNames(); if (StringUtils.hasText(jobNames)) { runner.setJobNames(jobNames); } return runner; } ... 이하 생략 ...} JobLauncherApplicationRunner

0

Helm 을 이용한 Jenkins 설치 - Kubernetes

목차 Helm 을 이용한 Jenkins 설치 - 04. Jenkinsfile 작성 Helm 을 이용한 Jenkins 설치 - 03. Gitea 와 연동하기 Helm 을 이용한 Jenkins 설치 - 02. Agent 추가 Helm 을 이용한 Jenkins 설치 - 01. 설치 Jenkins 란Erorr : You must be logged in to the server (Unauthorized)참고 https://artifacthub.io/packages/helm/jenkinsci/jenkins 1. Repository 추가helm repo add jenkins https://charts.jenkins.io 2. value.yaml 준비

0

Gitea 를 Maven Repository 로 사용하기

목차 Gitea Storage 로 S3 사용하기 Gitea 를 Maven Repository 로 사용하기 Helm 을 이용해 Gitea 설치하기 Gitea Maven Repository 로 사용하기참고 https://docs.gitea.io/en-us/packages/maven/ 일괄로 Dependency 올리는 코드Library 를 S3 로 변경할 경우 아래 스크립트로 Upload 시 명확하게 인식이 안돼서 Storage 타입에 따라 사용하도록 하자 #!/bin/bashfiles="./files.out"giteaurl="https://gitea.mbcp.co.kr/api/packages/vitality/maven/"token="d00b1001f5cfaf91c6143730f2fec34d13e16d2a"find . -name '*.*' -type f | cut -c 3- | grep "/" >$fileswhile read i; do echo "upload $i to $giteaurl" curl -v -H "Authorization: Bearer $token" --upload-file $i "$giteaurl$i"done <$files settings.xml 설정

0

Helm 을 이용해 Gitea 설치하기

목차 Gitea Storage 로 S3 사용하기 Gitea 를 Maven Repository 로 사용하기 Helm 을 이용해 Gitea 설치하기 Gitea 란? 오픈 소스 기반의 자체 호스팅 Git 서비스 1. Helm Repository 추가# Repository 추가helm repo add gitea https://dl.gitea.io/charts/# Repository Updatehelm repo update 2. Gitea value.yaml 생성 및 수정 참고 https://docs.gitea.io/en-us/config-cheat-sheet/ gitea 를 아무 설정 없이 설치하게 되면 다음과 같이 ROOT_URL 과 접근 URL 이 다르다는 경고를 보여준다.

0

쿠버네티스 - ReadinessProbe & LivenessProbe

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod Post not found: k8s/k8s Pod Pod 는 쿠버네티스에서 관리하는 가장 작은 배포 단위 쿠버네티스는 Pod 을 이용해 Container 를 관리 한다. Pod 는 단일 Node 에서 실행되며 각각의 Pod 는 고유한 IP 와 Host 이름을 가지고 있다. 쿠버네티스는 Pod 을 배포 하고 Pod 안에 한개 이상의 컨테이너가 존재한다. Pod 내 Container는 모두 동일한 Host 에서 실행되며 Network 와 저장소를 공유한다. apiVersion: v1kind: Podmetadata: name: echo labels: app: echospec: containers: - name: app image: ghcr.io/subicura/echo:v1 다중 컨테이너

0

EKS - Cluster Autoscaler

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 https://github.com/kubernetes/autoscaler https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeTags", "ec2:DescribeInstanceTypes", "ec2:DescribeLaunchTemplateVersions" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "autoscaling:SetDesiredCapacity", "autoscaling:TerminateInstanceInAutoScalingGroup", "ec2:DescribeImages", "ec2:GetInstanceTypesFromInstanceRequirements", "eks:DescribeNodegroup" ], "Resource": ["*"] } ]} helm repo add autoscaler https://kubernetes.github.io/autoscaler helm show values autoscaler/cluster-autoscaler 적용 대상 node에는 아래의 tag가 달려야 한다. k8s.io/cluster-autoscaler/skcc-dev-floot-eks: ownedk8s.io/cluster-autoscaler/enabled: true