batch 每次run都需要获取数据库信息,因此数据库连接池会限制总的并发数量,因此高并发需要考虑好连接或者不保存到数据库。
public class SimpleJobLauncher implements JobLauncher, InitializingBean {
public JobExecution run(final Job job, final JobParameters jobParameters) throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException {
Assert.notNull(job, "The Job must not be null.");
Assert.notNull(jobParameters, "The JobParameters must not be null.");
JobExecution lastExecution = this.jobRepository.getLastJobExecution(job.getName(), jobParameters);
springbatch 不保存数据到数据库方式如下
import org.springframework.batch.core.configuration.annotation.DefaultBatchConfigurer;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
@EnableBatchProcessing
public class SampleBatchJobConfig extends DefaultBatchConfigurer {
@Override
public void setDataSource(DataSource dataSource) {
//This BatchConfigurer ignores any DataSource
}
}