TimeoutOverDueJob.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.yihu.jw.util;
  2. import com.yihu.jw.service.channel.PrescriptionStatusUpdateService;
  3. import com.yihu.jw.service.channel.TimeoutOverDueService;
  4. import org.apache.commons.lang3.StringUtils;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.context.annotation.Lazy;
  9. import org.springframework.scheduling.Trigger;
  10. import org.springframework.scheduling.TriggerContext;
  11. import org.springframework.scheduling.annotation.EnableScheduling;
  12. import org.springframework.scheduling.annotation.SchedulingConfigurer;
  13. import org.springframework.scheduling.config.ScheduledTaskRegistrar;
  14. import org.springframework.scheduling.support.CronTrigger;
  15. import org.springframework.stereotype.Component;
  16. import java.util.Date;
  17. @Lazy(false)
  18. @Component
  19. @EnableScheduling
  20. public class TimeoutOverDueJob implements SchedulingConfigurer {
  21. private static final Logger logger = LoggerFactory.getLogger(TimeoutOverDueJob.class);
  22. private static String cron = "0 */10 * * * ?";//0 0 0 * * ?
  23. public TimeoutOverDueJob(){
  24. cron="0 */10 * * * ?";
  25. System.out.println("TimeoutOverDueJob初始化时的corn"+cron);
  26. }
  27. @Autowired
  28. private TimeoutOverDueService TimeoutOverDueService;
  29. public String change(String corIn) {
  30. if (StringUtils.isNotBlank(corIn)) {
  31. cron = corIn;
  32. }
  33. return cron;
  34. }
  35. @Override
  36. public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
  37. taskRegistrar.addTriggerTask(new Runnable() {
  38. @Override
  39. public void run() {
  40. logger.info("START========TimeoutOverDueJob========");
  41. try {
  42. TimeoutOverDueService.cancelOutPatientOver();
  43. logger.info("END========TimeoutOverDueJob========");
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. logger.error("END===ERROE===TimeoutOverDueJob,message:"+e.getMessage());
  47. }
  48. }
  49. }, new Trigger() {
  50. @Override
  51. public Date nextExecutionTime(TriggerContext triggerContext) {
  52. // 任务触发,可修改任务的执行周期
  53. CronTrigger trigger = new CronTrigger(cron);
  54. System.out.println("TimeoutOverDueJobc,可修改任务的执行周期"+cron);
  55. Date nextExec = trigger.nextExecutionTime(triggerContext);
  56. return nextExec;
  57. }
  58. });
  59. }
  60. }