下面列出了org.springframework.core.task.SyncTaskExecutor#org.springframework.batch.core.launch.support.SimpleJobLauncher 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Bean
public SimpleJobServiceFactoryBean simpleJobServiceFactoryBean(DataSource dataSource,
JobRepositoryFactoryBean repositoryFactoryBean, JobExplorer jobExplorer,
PlatformTransactionManager dataSourceTransactionManager) {
SimpleJobServiceFactoryBean factoryBean = new SimpleJobServiceFactoryBean();
factoryBean.setDataSource(dataSource);
try {
factoryBean.setJobRepository(repositoryFactoryBean.getObject());
factoryBean.setJobLauncher(new SimpleJobLauncher());
factoryBean.setJobExplorer(jobExplorer);
factoryBean.setTransactionManager(dataSourceTransactionManager);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
return factoryBean;
}
private JobLauncher createJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository);
jobLauncher.setTaskExecutor(new SimpleAsyncTaskExecutor());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
@Bean
public SimpleJobLauncher jobLauncher() {
SimpleJobLauncher launcher = new SimpleJobLauncher();
try {
launcher.setJobRepository(jobRepository());
} catch (Exception ex) {
logger.error("Creating job launcher bean", ex);
}
return launcher;
}
public void run() {
long timeCount = count.incrementAndGet();
log.info("任务执行开始 [count={}, date={}]",timeCount, DateFormatUtil.formatDate(DateFormatUtil.PATTERN_DEFAULT_ON_SECOND, new Date()));
SimpleJobLauncher launcher = new SimpleJobLauncher();
launcher.setJobRepository(jobRepository);
launcher.setTaskExecutor(new SimpleAsyncTaskExecutor());
try {
launcher.run(batchJob, new JobParameters());
} catch (Exception e) {
log.error("任务执行失败 [count={}, date={}]", timeCount, DateFormatUtil.formatDate(DateFormatUtil.PATTERN_DEFAULT_ON_SECOND, new Date()),e);
} finally {
log.info("任务执行结束 [count={}, date={}]",timeCount, DateFormatUtil.formatDate(DateFormatUtil.PATTERN_DEFAULT_ON_SECOND, new Date()));
}
}
@Bean
public SimpleJobServiceFactoryBean simpleJobServiceFactoryBean(DataSource dataSource,
JobRepositoryFactoryBean repositoryFactoryBean, JobExplorer jobExplorer,
PlatformTransactionManager dataSourceTransactionManager) throws Exception {
SimpleJobServiceFactoryBean factoryBean = new SimpleJobServiceFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setJobRepository(repositoryFactoryBean.getObject());
factoryBean.setJobLauncher(new SimpleJobLauncher());
factoryBean.setDataSource(dataSource);
factoryBean.setJobExplorer(jobExplorer);
factoryBean.setTransactionManager(dataSourceTransactionManager);
return factoryBean;
}
@Before
public void init() {
MockitoAnnotations.initMocks(this);
this.listenerService = new DefaultListenerService(this.beanRegistrar, this.jobRegistry, this.jobRepository);
ReflectionTestUtils.setField(this.listenerService, "applicationContext", this.applicationContext);
this.job = DomainTestHelper.createJob("testJob");
this.jobLauncher = new SimpleJobLauncher();
}
@Test
public void refreshSchedulerForJobTest() {
final String beanName = "schedulerBean";
final JobSchedulerConfiguration jobSchedulerConfiguration = DomainTestHelper.createJobSchedulerConfiguration(null,
10L, 10L, JobSchedulerType.PERIOD);
jobSchedulerConfiguration.setBeanName(beanName);
jobSchedulerConfiguration.setTaskExecutorType(TaskExecutorType.ASYNCHRONOUS);
final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobSchedulerConfiguration);
final Map<String, Object> jobParameters = new HashMap<>();
jobParameters.put("LONG", 10L);
jobParameters.put("DOUBLE", 20.2);
jobParameters.put("STRING", "test");
jobParameters.put("DATE", "2015/03/27 23:19:24:120");
jobParameters.put("DATE", "2015/03/27");
jobConfiguration.setJobParameters(jobParameters);
final SchedulerConstructorWrapper schedulerConstructorWrapper = new SchedulerConstructorWrapper();
schedulerConstructorWrapper.setJob(DomainTestHelper.createJob("sampleJob"));
schedulerConstructorWrapper.setJobConfiguration(jobConfiguration);
schedulerConstructorWrapper.setJobIncrementer(JobIncrementer.NONE);
schedulerConstructorWrapper.setJobLauncher(new SimpleJobLauncher());
schedulerConstructorWrapper.setJobParameters(new JobParametersBuilder().toJobParameters());
//scheduler = new PeriodScheduler(schedulerConstructorWrapper);
when(this.applicationContext.containsBean(beanName)).thenReturn(Boolean.TRUE);
when(this.applicationContext.getBean(beanName, Scheduler.class)).thenReturn(this.scheduler);
when(this.scheduler.getSchedulerStatus()).thenReturn(SchedulerStatus.INITIALIZED);
this.schedulerService.refreshSchedulerForJob(jobConfiguration);
verify(this.scheduler, times(1)).terminate();
}
@Test
public void refreshSchedulerForJobCronTest() {
final String beanName = "schedulerBean";
final JobSchedulerConfiguration jobSchedulerConfiguration = DomainTestHelper.createJobSchedulerConfiguration("some " +
"Cron",
null, null, JobSchedulerType.CRON);
jobSchedulerConfiguration.setBeanName(beanName);
jobSchedulerConfiguration.setTaskExecutorType(TaskExecutorType.ASYNCHRONOUS);
final JobConfiguration jobConfiguration = DomainTestHelper.createJobConfiguration(jobSchedulerConfiguration);
final Map<String, Object> jobParameters = new HashMap<>();
jobParameters.put("LONG", 10L);
jobParameters.put("DOUBLE", 20.2);
jobParameters.put("STRING", "test");
jobParameters.put("DATE", "2015/03/27 23:19:24:120");
jobParameters.put("DATE", "2015/03/27");
jobConfiguration.setJobParameters(jobParameters);
final SchedulerConstructorWrapper schedulerConstructorWrapper = new SchedulerConstructorWrapper();
schedulerConstructorWrapper.setJob(DomainTestHelper.createJob("sampleJob"));
schedulerConstructorWrapper.setJobConfiguration(jobConfiguration);
schedulerConstructorWrapper.setJobIncrementer(JobIncrementer.NONE);
schedulerConstructorWrapper.setJobLauncher(new SimpleJobLauncher());
schedulerConstructorWrapper.setJobParameters(new JobParametersBuilder().toJobParameters());
//scheduler = new PeriodScheduler(schedulerConstructorWrapper);
when(this.applicationContext.containsBean(beanName)).thenReturn(Boolean.TRUE);
when(this.applicationContext.getBean(beanName, Scheduler.class)).thenReturn(this.scheduler);
when(this.scheduler.getSchedulerStatus()).thenReturn(SchedulerStatus.INITIALIZED);
this.schedulerService.refreshSchedulerForJob(jobConfiguration);
verify(this.scheduler, times(1)).terminate();
}
@Bean(name = "defaultAsyncJobLauncher")
public JobLauncher defaultAsyncJobLauncher(final JobRepository jobRepository) {
final SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository);
jobLauncher.setTaskExecutor(new SimpleAsyncTaskExecutor());
return jobLauncher;
}
@Override
public JobLauncher getJobLauncher() {
SimpleJobLauncher launcher = new SimpleJobLauncher();
launcher.setJobRepository(this.jobRepository);
launcher.setTaskExecutor(new SyncTaskExecutor());
return launcher;
}
protected JobLauncher createJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(getJobRepository());
jobLauncher.setTaskExecutor(new ConcurrentTaskExecutor());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
@Before
public void setUp() throws Exception {
mockServer = MockRestServiceServer.createServer(restTemplate);
SmtpServerStub.start();
jobParams = new JobParametersBuilder()
.addLong("month", 2L)
.addLong("year", 2014L).toJobParameters();
employeeGeneratorService.resetEmployees(NUMBER_OF_EMPLOYEES);
runningTimeService.setMaximumTime(51);
runningTimeService.setMinimumTime(50);
jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository);
}
private JobLauncher createJobLauncher() throws Exception {
SimpleJobLauncher simpleJobLauncher = new SimpleJobLauncher();
simpleJobLauncher.setJobRepository(jobRepository);
simpleJobLauncher.setTaskExecutor(taskExecutor);
simpleJobLauncher.afterPropertiesSet();
return simpleJobLauncher;
}
public JobLauncher getJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
// SimpleJobLauncher's methods Throws Generic Exception,
// it would have been better to have a specific one
jobLauncher.setJobRepository(getJobRepository());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
public JobLauncher getJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
// SimpleJobLauncher's methods Throws Generic Exception,
// it would have been better to have a specific one
jobLauncher.setJobRepository(getJobRepository());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
private JobLauncher createJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository);
jobLauncher.setTaskExecutor( new SimpleAsyncTaskExecutor());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
public JobLauncher getJobLauncher() {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository);
jobLauncher.setTaskExecutor(new ConcurrentTaskExecutor(executorService));
return jobLauncher;
}
protected JobLauncher createJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository);
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
protected JobLauncher createJobLauncher() throws Exception {
final SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(this.jobRepository);
jobLauncher.afterPropertiesSet();
return jobLauncher;
}