Skip to content
Snippets Groups Projects
Commit 4be20a4b authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#663 - migrator: remove scheduler config

parent 3e8573ae
No related branches found
No related tags found
No related merge requests found
...@@ -49,7 +49,7 @@ public class BatchConfiguration ...@@ -49,7 +49,7 @@ public class BatchConfiguration
this.destinationCategoryRepository = destinationCategoryRepository; this.destinationCategoryRepository = destinationCategoryRepository;
} }
@Bean @Bean(name="migrateJob")
public Job createJob() public Job createJob()
{ {
return jobBuilderFactory.get("Migrate from h2 to postgresql") return jobBuilderFactory.get("Migrate from h2 to postgresql")
...@@ -71,6 +71,7 @@ public class BatchConfiguration ...@@ -71,6 +71,7 @@ public class BatchConfiguration
.writer(new GenericWriter<>(destinationImageRepository)) .writer(new GenericWriter<>(destinationImageRepository))
.listener(new GenericChunkListener("image")) .listener(new GenericChunkListener("image"))
.listener(new GenericStepListener("images")) .listener(new GenericStepListener("images"))
.allowStartIfComplete(true)
.build(); .build();
} }
...@@ -84,6 +85,7 @@ public class BatchConfiguration ...@@ -84,6 +85,7 @@ public class BatchConfiguration
.writer(new GenericWriter<>(destinationIconRepository)) .writer(new GenericWriter<>(destinationIconRepository))
.listener(new GenericChunkListener("icon")) .listener(new GenericChunkListener("icon"))
.listener(new GenericStepListener("icons")) .listener(new GenericStepListener("icons"))
.allowStartIfComplete(true)
.build(); .build();
} }
...@@ -97,6 +99,7 @@ public class BatchConfiguration ...@@ -97,6 +99,7 @@ public class BatchConfiguration
.writer(new GenericWriter<>(destinationCategoryRepository)) .writer(new GenericWriter<>(destinationCategoryRepository))
.listener(new GenericChunkListener("category")) .listener(new GenericChunkListener("category"))
.listener(new GenericStepListener("categories")) .listener(new GenericStepListener("categories"))
.allowStartIfComplete(true)
.build(); .build();
} }
} }
package de.deadlocker8.budgetmaster.databasemigrator; package de.deadlocker8.budgetmaster.databasemigrator;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @SpringBootApplication
public class DatabaseMigratorMain public class DatabaseMigratorMain implements CommandLineRunner
{ {
private final JobLauncher jobLauncher;
@Qualifier("migrateJob")
private final Job migrateJob;
public DatabaseMigratorMain(JobLauncher jobLauncher, Job migrateJob)
{
this.jobLauncher = jobLauncher;
this.migrateJob = migrateJob;
}
public static void main(String[] args) public static void main(String[] args)
{ {
SpringApplication.run(DatabaseMigratorMain.class, args); SpringApplication.run(DatabaseMigratorMain.class, args);
} }
@Override
public void run(String... args) throws Exception
{
jobLauncher.run(migrateJob, new JobParametersBuilder().toJobParameters());
}
} }
package de.deadlocker8.budgetmaster.databasemigrator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.batch.core.*;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.batch.core.launch.JobOperator;
import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException;
import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException;
import org.springframework.batch.core.repository.JobRestartException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Configuration
@EnableScheduling
public class SchedulerConfig
{
private static final Logger LOGGER = LoggerFactory.getLogger(SchedulerConfig.class);
final JobLauncher jobLauncher;
final JobOperator jobOperator;
final Job job;
@Autowired
public SchedulerConfig(JobLauncher jobLauncher, JobOperator jobOperator, Job job)
{
this.jobLauncher = jobLauncher;
this.jobOperator = jobOperator;
this.job = job;
}
@Scheduled(fixedDelay = Long.MAX_VALUE, initialDelay = 1000)
public void scheduleByFixedRate() throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException, JobParametersInvalidException, JobRestartException
{
LOGGER.info("Starting migration...");
final JobParameters jobParameters = new JobParametersBuilder()
.addString("time", LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME))
.toJobParameters();
final JobExecution execution = jobLauncher.run(job, jobParameters);
LOGGER.info("Migration DONE");
System.exit(0);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment