CompleteScheduleConfig.java 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.simuwang.manage.init;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.simuwang.base.common.util.DateUtils;
  4. import com.simuwang.base.mapper.system.SysConfigMapper;
  5. import com.simuwang.manage.task.FundDeletionTask;
  6. import com.simuwang.manage.task.SendCompanyEmailTask;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.annotation.Configuration;
  11. import org.springframework.scheduling.annotation.EnableScheduling;
  12. import org.springframework.scheduling.annotation.SchedulingConfigurer;
  13. import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
  14. import org.springframework.scheduling.config.ScheduledTaskRegistrar;
  15. import org.springframework.scheduling.support.CronTrigger;
  16. /**
  17. * TODO
  18. * @version 1.0
  19. * @author chenjianhua
  20. * @date 2021/12/29 13:35
  21. */
  22. @Configuration
  23. @EnableScheduling
  24. public class CompleteScheduleConfig implements SchedulingConfigurer {
  25. private static Logger logger = LoggerFactory.getLogger(CompleteScheduleConfig.class);
  26. @Autowired
  27. private FundDeletionTask fundDeletionTask;
  28. @Autowired
  29. private SendCompanyEmailTask sendCompanyEmailTask;
  30. @Autowired
  31. private SysConfigMapper sysConfigMapper;
  32. /**
  33. * 执行定时任务.
  34. */
  35. @Override
  36. public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
  37. ThreadPoolTaskScheduler taskScheduler=new ThreadPoolTaskScheduler();
  38. // 设定最大可用的线程数目
  39. taskScheduler.setPoolSize(10);
  40. taskScheduler.initialize();
  41. taskRegistrar.setScheduler(taskScheduler);
  42. taskRegistrar.addTriggerTask(
  43. //1.添加任务内容(Runnable)
  44. () -> {
  45. try {
  46. logger.info("缺失统计任务开始"+ DateUtils.getTime());
  47. fundDeletionTask.computeDeletion();//定时拉取数据
  48. logger.info("缺失统计任务结束"+ DateUtils.getTime());
  49. } catch (Exception e) {
  50. logger.error("缺失统计任务异常========="+e.getMessage()+"----" +DateUtils.getTime(),e);
  51. }
  52. },
  53. //2.设置执行周期(Trigger)
  54. loadFtpFileTriggerContext -> {
  55. String cron = sysConfigMapper.selectConfigByKey("deletion_cron");
  56. if(StrUtil.isBlank(cron)){
  57. return null;
  58. }
  59. logger.info("缺失统计定时任务执行时间:"+cron);
  60. //2.2 返回执行周期(Date)
  61. return new CronTrigger(cron).nextExecutionTime(loadFtpFileTriggerContext).toInstant();
  62. }
  63. );
  64. //增量补数
  65. taskRegistrar.addTriggerTask(
  66. //1.添加任务内容(Runnable)
  67. () -> {
  68. try {
  69. logger.info("给管理人发送基金缺失预警邮件定时任务开始"+DateUtils.getTime());
  70. sendCompanyEmailTask.sendEmail();//定时拉取数据
  71. logger.info("给管理人发送基金缺失预警邮件定时任务结束========="+ DateUtils.getTime());
  72. } catch (Exception e) {
  73. logger.error("给管理人发送基金缺失预警邮件定时任务异常========="+e.getMessage()+ DateUtils.getTime(),e);
  74. }
  75. },
  76. //2.设置执行周期(Trigger)
  77. loadFtpFileUpdateTriggerContext -> {
  78. String cron = sysConfigMapper.selectConfigByKey("send_company_email");
  79. if(StrUtil.isBlank(cron)){
  80. return null;
  81. }
  82. logger.info("给管理人发送基金缺失预警邮件定时任务轮训时间:"+cron);
  83. //2.2 返回执行周期(Date)
  84. return new CronTrigger(cron).nextExecutionTime(loadFtpFileUpdateTriggerContext).toInstant();
  85. }
  86. );
  87. }
  88. }