[JAVA] Créez un cadre de traitement par lots simple dans Eclipse.

Dans cet article, lors de la création d'un processus par lots avec Eclipse, j'ai essayé et essayé de créer un cadre simple, puis j'ai procédé tel quel.

L'image du traitement par lots lui-même est que le temps de traitement est long (entrée d'une grande quantité de données, traitement et sortie) comme un autre traitement. Donc, je n'avais pas l'idée de jobs ou de tâches, et j'ai imaginé quelque chose comme exécuter un long processus dans la fonction principale. Cependant, lorsque j'utilisais réellement les fonctions de SpringFramework, je devais penser aux travaux et aux tâches. Donc, tout d'abord, exécutez le travail à partir de la fonction principale, exécutez la tâche à partir du travail et rattrapez le point où le code de fin est défini.

Commençons par créer le processus par lots suivant. ・ BatchTestApplication (principale) => Démarrez BatchTestJob. (Utilisation de Spring Framework) ・ BatchTetJob => Démarrez BatchTestTasklet. ・ BatchTestTasklet => Sortie "BatchTestTasklet Start OK" (définissez le code de fin sur 1)

Point: définir le code de fin dans le traitement par lots est un peu compliqué. (1) Implémentez l'interface ExitCodeGenerator dans la classe BatchTestTasklet. (2) Remplacez la méthode getExitCode et renvoyez-y la valeur de retour. (3) La valeur de retour de (2) est définie dans la valeur de retour de SpringApplication.exit.

・BatchTestApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext;

@SpringBootApplication public class BatchTestAppApplication {

public static void main(String[] args) {
	ApplicationContext context = SpringApplication.run(BatchTestAppApplication.class, args);
	int iRet = SpringApplication.exit(context);
	System.out.println(iRet);
	System.exit(iRet);
}

}

・BatchTestJob.java

package com.example.demo;

import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.launch.support.RunIdIncrementer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component;

@Component @EnableBatchProcessing public class BatchTestJob {

@Autowired
private JobBuilderFactory jobFactory;

@Autowired
private StepBuilderFactory stepFactory;

@Autowired
private BatchTestTasklet batchTestTasklet;

@Bean
public Step step1() {
	return stepFactory
			.get("step1")
			.tasklet(batchTestTasklet)
			.build();
}

@Bean
public Job job(Step step1) {

	return jobFactory
			.get("job")
			.incrementer(new RunIdIncrementer())
			.start(step1)
			.build();
}

}

・BatchTestTasklet.java

package com.example.demo;

import org.springframework.batch.core.StepContribution; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.step.tasklet.Tasklet; import org.springframework.batch.repeat.RepeatStatus; import org.springframework.boot.ExitCodeGenerator; import org.springframework.stereotype.Component;

@Component public class BatchTestTasklet implements Tasklet, ExitCodeGenerator {

@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {

	System.out.println("BatchTestTasklet Start OK");
	return RepeatStatus.FINISHED;
}

@Override
public int getExitCode() {
	return 1;
}

}

Recommended Posts

Créez un cadre de traitement par lots simple dans Eclipse.
Créez une base pour votre projet de traitement par lots dans Eclipse.
Créer un programme Servlet dans Eclipse
Créez un lot à la demande simple avec Spring Batch
Créons un framework Web ultra-simple avec Java
Créer un projet Tomcat en utilisant Eclipse Pleiades All in One
3 Implémentez un interpréteur simple en Java
Créer un projet Tomcat à l'aide d'Eclipse
Créer une base de données dans un environnement de production
Créer une nouvelle application avec Rails
Créer un projet Java à l'aide d'Eclipse
Un exemple simple de rappels en Java
J'ai essayé de créer une application cartographique simple dans Android Studio
Créez une application Web simple avec Dropwizard
Création d'un environnement de développement Lambda avec Eclipse
[Retrait des rails] Créez une fonction de retrait simple avec des rails
Créer un graphique à barres simple avec MPAndroidChart
Construction de l'environnement Play Framework 2.6 (Java) avec Eclipse
Créer une application TODO dans Java 7 Créer un en-tête
Traitement d'échappement lors de la création d'une URL dans Ruby
Créez une application de recherche simple avec Spring Boot
Créer un CSR avec des informations étendues en Java
Créez un tableau d'affichage simple avec Java + MySQL
Essayez de créer un babillard en Java
Créer un onglet personnalisé avec SwiftUI 2.0
Comment créer un thème dans Liferay 7 / DXP
Dessinez un ensemble de Mandelbrot trop beau avec Processing
Créer un outil pour l'identification des noms dans Salesforce
[1st] Comment créer un projet de framework Spring-MVC
Comment créer facilement un pull-down avec des rails
Comment générer automatiquement un constructeur dans Eclipse
MVC dans Eclipse.
Créer un traitement polyvalent
J'ai fait un jeu de problèmes de calcul simple en Java
Soumettre une tâche à AWS Batch avec Java (Eclipse)
[CentOS, Eclipse] Charger les fichiers de bibliothèque dans le projet C
Comment créer un projet Spring Boot dans IntelliJ
J'ai essayé de créer une compétence Clova en Java
[Mémo personnel] Créez une copie complète simple avec Java
Comment créer un URI de données (base64) en Java
À propos de l'ajout de variables dans le traitement itératif dans l'instruction while
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
[Programmation complète] §5 Créer une application de gestion des avis dans Ruby
Appeler un programme écrit en Swift depuis Processing (Java)
Créer une fenêtre non rectangulaire sans cadre sans barre de tâches dans JavaFX