2021-11-24 11:14:06.010 ERROR o.s.s.s.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task. java.lang.IllegalArgumentException: lockAtMostUntil is before lockAtLeastUntil for lock 'testMisc'. at net.javacrumbs.shedlock.core.LockConfiguration.(LockConfiguration.java:46) at net.javacrumbs.shedlock.spring.internal.SpringLockConfigurationExtractor.getLockConfiguration(SpringLockConfigurationExtractor.java:79) at net.javacrumbs.shedlock.spring.internal.SpringLockConfigurationExtractor.getLockConfiguration(SpringLockConfigurationExtractor.java:68) at net.javacrumbs.shedlock.spring.internal.SpringLockConfigurationExtractor.getLockConfiguration(SpringLockConfigurationExtractor.java:58) at net.javacrumbs.shedlock.core.DefaultLockManager.executeWithLock(DefaultLockManager.java:46) at net.javacrumbs.shedlock.core.LockableRunnable.run(LockableRunnable.java:35) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
@Scheduled(cron = "0/3 * * * * ? ")
// @SchedulerLock(name = "scheduledController_notice",lockAtLeastForString = "PT2S", lockAtMostForString = "PT2S")
@SchedulerLock(name = "testMisc",lockAtLeastFor = 9*1000, lockAtMostFor = 6*1000)
public void testMisc(){
log.info ( "定时任务测试" );
eleOrderlyChargingFeign.runMisc();
}
lockAtMostFor或者lockAtMostForString 的数值 要大于等于 lockAtLeastFor或lockAtLeastForString 否则就会报错
改为
@SchedulerLock(name = "testMisc",lockAtLeastFor = 4*1000, lockAtMostFor = 6*1000)
即可



