@Component //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
public class scheduledStatic implements SchedulingConfigurer {
private String cron = "*/5 * * * * ? ";
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
Trigger trigger = new Trigger() {
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {
CronTrigger trigger = new CronTrigger(cron);
Date nextExec = trigger.nextExecutionTime(triggerContext);
return nextExec;
}
};
scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
scheduledTaskRegistrar.addTriggerTask(this::execute1, trigger);
scheduledTaskRegistrar.addTriggerTask(this::execute2, trigger);
}
@SchedulerLock(name = "test1",lockAtMostFor = 2*60*1000,lockAtLeastFor = 5000)
public void execute1() {
System.out.println(LocalDateTime.now() + "==1111111111111111111111:" + Thread.currentThread().getId());
}
@SchedulerLock(name = "test1",lockAtMostFor = 2*60*1000,lockAtLeastFor = 5000)
public void execute2() {
System.out.println(LocalDateTime.now() + "==22222222222222222222:" + Thread.currentThread().getId());;
};
}
在方法上面直接加@@Scheduled()然后在加上@SchedulerLock()就会生效~~~~
SchedulerLock 配置贴出来,失效报什么错