我们一般的定时任务会用 xxljob,但是有时候我就不想用,有没有能替代的呢?有
ScheduledTaskRegistrar 就可以
该函数用于配置定时任务。通过ScheduledTaskRegistrar参数来注册定时任务。具体功能可能包括设置任务执行的时间、频率等。实际逻辑取决于调用该方法时传入的具体任务实现。
@Component
@Slf4j
public class ConsumeGpsExceptionDataSchedule implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.addTriggerTask(
this::consumeGpsExceptionData,
triggerContext -> {
// 十分钟执行一次
String cron = "0/10 * * * * ?";
CronTrigger trigger = new CronTrigger(cron);
Date date = trigger.nextExecutionTime(triggerContext);
log.info("gps异常数据重推-当前触发器执行cron={},下次触发时间={}", cron, DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
return trigger.nextExecutionTime(triggerContext);
});
}
}
public void consumeGpsExceptionData() {
// 消费异常数据
VehicleDataExceptionVo g7VehicleDataExceptionVo = new VehicleDataExceptionVo();
}
该函数configureTasks用于配置定时任务。具体功能如下:
将consumeGpsExceptionData方法注册为定时任务。
通过Cron表达式0/10 * * * * ?设置任务每10分钟执行一次。
计算下一次执行时间,并记录日志显示cron表达式及下次触发时间。
返回计算的下一次执行时间。