Рубрики
Без рубрики

Весенний пакет + Пример планировщика весенних задач

– – Весенний пакет + Планировщик Весенних задач пример

В этом уроке мы покажем вам, как использовать Планировщик задач Spring , чтобы запланировать выполнение пакетного задания каждые 5 секунд.

Используемые инструменты и библиотеки

  1. Мавен 3
  2. Затмение 4.2
  3. JDK 1.6
  4. Пружинный сердечник 3.2.2.ВЫСВОБОЖДЕНИЕ
  5. Весенняя партия 2.2.0.ВЫПУСК

1. Структура каталогов проектов

Стандартный проект Maven.

2. Планировщик Весенних задач

В Spring 3.0 представлен Планировщик задач для планирования задач. Это часть ядра Spring, нет необходимости объявлять дополнительную зависимость.

  
	
  
	
  
	
  

Планировщик Задач запланирует запуск ниже bean.

package com.mkyong;

import java.util.Date;

import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class RunScheduler {

  @Autowired
  private JobLauncher jobLauncher;

  @Autowired
  private Job job;

  public void run() {

    try {

	String dateParam = new Date().toString();
	JobParameters param = 
	  new JobParametersBuilder().addString("date", dateParam).toJobParameters();
			
	System.out.println(dateParam);
			
	JobExecution execution = jobLauncher.run(job, param);
	System.out.println("Exit Status : " + execution.getStatus());

    } catch (Exception e) {
	e.printStackTrace();
    }

  }
}

P.S Jobparameter должен быть уникальным при каждом запуске пакетного задания, для целей тестирования мы просто передаем новая дата() все, что связано с работой.

3. Весенние пакетные Задания

Эта работа заключается в простом чтении csv-файла и отображении значения с помощью пользовательского средства записи. Обратитесь к концу файла, мы используем task:планировщик-задачи для запуска этого пакетного задания каждые 5 секунд.




  

  
  
	
  

  

  
	
  
  
	
  

  

  
	
	  
		
		
	  
	
   

  

	
	

	
	  
		
		  
			
		  
		
		
		  
			
		  
		
	  
	

  

  

  
  
    
	
   


1,"139,237"
2,"500,657"
3,"342,100"
package com.mkyong.writers;

import java.util.List;
import org.springframework.batch.item.ItemWriter;
import com.mkyong.model.Report;

public class CustomWriter implements ItemWriter {

  @Override
  public void write(List items) throws Exception {

	System.out.println("writer..." + items.size());		
	for(Report item : items){
		System.out.println(item);
	}

  }

}

4. Запустите Его

Загружает контекст приложения Spring, планировщик будет запущен автоматически.

package com.mkyong;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
	
  public static void main(String[] args) {

	String springConfig = "spring/batch/jobs/job-report.xml";

	ApplicationContext context = new ClassPathXmlApplicationContext(springConfig);

  }
}

Вывод, он печатает содержимое csv каждые 5 секунд.

......
Sun Jul 28 11:20:30 MYT 2013
Jul 28, 2013 11:20:30 AM org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run
INFO: Job: [FlowJob: [name=reportJob]] launched with the following parameters: [{date=Sun Jul 28 11:20:30 MYT 2013}]
Jul 28, 2013 11:20:30 AM org.springframework.batch.core.job.SimpleStepHandler handleStep
INFO: Executing step: [step1]
writer...3
Report [id=1, Impressions=139,237]
Report [id=2, Impressions=500,657]
Report [id=3, Impressions=342,100]
Jul 28, 2013 11:20:30 AM org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run
INFO: Job: [FlowJob: [name=reportJob]] completed with the following parameters: [{date=Sun Jul 28 11:20:30 MYT 2013}] and the following status: [COMPLETED]
Exit Status : COMPLETED

Sun Jul 28 11:20:35 MYT 2013
Jul 28, 2013 11:20:35 AM org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run
INFO: Job: [FlowJob: [name=reportJob]] launched with the following parameters: [{date=Sun Jul 28 11:20:35 MYT 2013}]
Jul 28, 2013 11:20:35 AM org.springframework.batch.core.job.SimpleStepHandler handleStep
INFO: Executing step: [step1]
writer...3
Report [id=1, Impressions=139,237]
Report [id=2, Impressions=500,657]
Report [id=3, Impressions=342,100]
Exit Status : COMPLETED
Jul 28, 2013 11:20:35 AM org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run
INFO: Job: [FlowJob: [name=reportJob]] completed with the following parameters: [{date=Sun Jul 28 11:20:35 MYT 2013}] and the following status: [COMPLETED]
......

Скачать Исходный Код

Рекомендации

  1. Весна – Планирование задачи.
  2. Вики: Cron

Оригинал: “https://mkyong.com/spring-batch/spring-batch-and-spring-taskscheduler-example/”