实现定时任务

scheduledTaskVo为定时任务需要处理的数据
public void sendSMS(ScheduledTaskVo scheduledTaskVo) throws SchedulerException {
//创建schedule实例 三 调度器 StdSchedulerFactory 工厂模式
StdSchedulerFactory factory = new StdSchedulerFactory();
//获取调度器实例
Scheduler scheduler = factory.getScheduler();
JobDataMap map = new JobDataMap();
map.put(“scheduledTaskVo”,scheduledTaskVo);
System.out.println(“下次执行时间”+scheduledTaskVo.getNextStartData());
JobDetail jobDetail= JobBuilder
.newJob(ImplTimingFun.class)
.setJobData(map)
.withIdentity(“demo”+String.format(ApiConstant.FORMAT, new Date().getTime()))
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.forJob(jobDetail)
.startAt(scheduledTaskVo.getStartData())
.endAt(scheduledTaskVo.getEndData())
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInHours(scheduledTaskVo.getNextStartData())
.repeatForever())
.build();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
}

ImplTimingFun类 要实现Job bean不能够注入只能通过getBean的方式获取
public class ImplTimingFun implements Job {

private static final Logger logger = LogManager.getLogger(ImplTimingFun.class);

private SurveyquestionDao surveyquestionDao;

private SurveyquestionoptionDao surveyquestionoptionDao;

private TjHyglRwglService tjHyglRwglService;

private SurveyuseranswerRepo surveyuseranswerRepo;

private TjHyglRwglRepo tjHyglRwglRepo;

private PersonMatchRulesUtil personMatchRulesUtil;

private TjJcglJkjhRepo tjJcglJkjhRepo;

private TjJkjhRycxDao tjJkjhRycxDao;

@Resource
private DataBaseUtils dataBaseUtils;


@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {

    surveyquestionDao =  AppContextHolder.getBean(Introspector.decapitalize(SurveyquestionDao.class.getSimpleName()),SurveyquestionDao.class);
    surveyquestionoptionDao = AppContextHolder.getBean(Introspector.decapitalize(SurveyquestionoptionDao.class.getSimpleName()),SurveyquestionoptionDao.class);
    tjHyglRwglService = AppContextHolder.getBean(Introspector.decapitalize(TjHyglRwglService.class.getSimpleName()),TjHyglRwglService.class);
    surveyuseranswerRepo = AppContextHolder.getBean(Introspector.decapitalize(SurveyuseranswerRepo.class.getSimpleName()),SurveyuseranswerRepo.class);
    tjHyglRwglRepo = AppContextHolder.getBean(Introspector.decapitalize(TjHyglRwglRepo.class.getSimpleName()),TjHyglRwglRepo.class);
    personMatchRulesUtil = AppContextHolder.getBean(Introspector.decapitalize(PersonMatchRulesUtil.class.getSimpleName()),PersonMatchRulesUtil.class);
    tjJcglJkjhRepo = AppContextHolder.getBean(Introspector.decapitalize(TjJcglJkjhRepo.class.getSimpleName()),TjJcglJkjhRepo.class);
    tjJkjhRycxDao = AppContextHolder.getBean(Introspector.decapitalize(TjJkjhRycxDao.class.getSimpleName()),TjJkjhRycxDao.class);
    dataBaseUtils = AppContextHolder.getBean("dataBaseUtils",DataBaseUtils.class);
    JobDetail jobDetail = jobExecutionContext.getJobDetail();
    JobDataMap jobDataMap = jobDetail.getJobDataMap();
    ScheduledTaskVo scheduledTaskVo = BeanUtil.toBean(jobDataMap.get("scheduledTaskVo"), ScheduledTaskVo.class, null);
    try {
        createRw(scheduledTaskVo);
    } catch (NoSuchFieldException | IllegalAccessException | ServiceException e) {
        e.printStackTrace();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值