前提:
通过前端传来的字符串如8:00去调度定时任务,并且每个公司下的时间都可以不一样
简单理解:
可以分为
1:一个定时任务要有多个不一样的时间。
2:也可以理解一个定时任务定时去调度,但中间业务去判断时间是否满足,是否去执行。(需要)
(1):一个定时任务要有多个不一样的时间。
@Component
@EnableScheduling
public class DoAlarmEventScheduledTask implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.addTriggerTask(() -> {
//业务
},(triggerContext)->{
//从数据库里获取字符串
parameterValue=数据库获取的字符串
//将字符串转化为cron
String cron=CronUtils.getCron(parameterValue)
//修改定时任务时间
CronTrigger trigger = new CronTrigger(cron);
Date nextExecDate = trigger.nextExecutionTime(triggerContext);
return nextExecDate;
});
}
}
**CronUtils工具类**实现字符串转换为cron的工具类
但这并不是我们需要的。不能实现多个公司不同时间的定时任务,不过别气馁。我们还有第二回合;
我与定时任务相亲相爱的第二回合