SchedulingConfig.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.nokia.alarm.config;
  2. import java.util.Date;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.beans.factory.annotation.Value;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.scheduling.annotation.SchedulingConfigurer;
  8. import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
  9. import org.springframework.scheduling.config.ScheduledTaskRegistrar;
  10. import com.nokia.alarm.service.AlarmSaveToGPandPGService;
  11. import lombok.extern.slf4j.Slf4j;
  12. @Slf4j
  13. @Configuration
  14. @SuppressWarnings("null")
  15. public class SchedulingConfig implements SchedulingConfigurer {
  16. @Value("${scheduling.scheduler.pool.size:2}")
  17. private int poolSize;
  18. @Autowired
  19. private AlarmSaveToGPandPGService service;
  20. @Bean
  21. public ThreadPoolTaskScheduler taskScheduler() {
  22. // 使用最常用的ThreadPoolTaskScheduler
  23. ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
  24. // 线程数
  25. taskScheduler.setPoolSize(poolSize);
  26. taskScheduler.setRemoveOnCancelPolicy(true);
  27. taskScheduler.setThreadNamePrefix("taskSchedulerThreadPool-");
  28. log.info("已完成 ThreadPoolTaskScheduler 配置, poolSize = {}", poolSize);
  29. return taskScheduler;
  30. }
  31. @Override
  32. public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
  33. taskRegistrar.setScheduler(taskScheduler());
  34. taskRegistrar.addCronTask(() -> {
  35. Date date = new Date();
  36. service.newAlarm(date);
  37. service.updateAlarm(date);
  38. }, "0 */5 * * * ?");
  39. }
  40. }