10 Mart 2019 Pazar

SpringScheduling ScheduledTaskRegistrar Sınıfı

Giriş
Normalde bu sınıfı tek başına kullanmıyoruz. SchedulingConfigurer tarafından kullanılıyor

addTrigger metodu
Şöyle yaparız.
Trigger trigger = new Trigger() {
  @Override public Date nextExecutionTime(TriggerContext tc) {

  Calendar nextExecutionTime =  new GregorianCalendar();
  ....
  return nextExecutionTime.getTime();
  }
};

Runnable task = new Runnable() {

  @Override
  public void run() {
    ...
}     
taskRegistrar.addTriggerTask(task, trigger);
setErrorHandler metodu
Örnek
Şöyle yaparız
@Component
public class MyErrorHandler implements ErrorHandler {

  @Override
  public void handleError(Throwable t) {
    // Custom logic for handling errors encountered in scheduled task
  }
}

@Configuration
public class SchedulerConfig implements SchedulingConfigurer {

   @Autowired
   private MyErrorHandler myErrorHandler;

   @Override
   public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
     taskRegistrar.setErrorHandler(myErrorHandler);
  }
}
setScheduler metodu
Şöyle yaparız
@Bean(destroyMethod = "shutdown")
public Executor taskExecutor() {
   return Executors.newScheduledThreadPool(1);
}

ScheduledTaskRegistrar taskRegistrar = ...

taskRegistrar.setScheduler(taskExecutor());

Hiç yorum yok:

Yorum Gönder