Я пытаюсь заблокировать определенный запланированный метод с помощью Shedlock.
Shedlock вообще не работает, в базе данных нет записей с interceptMode = PROXY_METHOD
При использовании interceptMode = PROXY_SCHEDULER он работает и блокируется.
Кто-нибудь знает, почему это так? Я боюсь использовать interceptMode = PROXY_SCHEDULER, опасаясь, что это может сломать что-то еще.
Я использую Shedlock версии 4.42.0
@Slf4j
@Configuration
@EnableTransactionManagement
@EnableScheduling
// InterceptMode.PROXY_SCHEDULER is working while PROXY_METHOD does not execute the locking at all
@EnableSchedulerLock(defaultLockAtMostFor = "PT5M", interceptMode = PROXY_METHOD)
public class ApplicationConfiguration {
@Autowired
FooService fooService;
@Scheduled(cron = "0 * * * * *") // run every minute
@SchedulerLock(name = "fooSchedulerLock", lockAtLeastFor = "10m", lockAtMostFor = "15m")
public void fooScheduledTask() {
fooService.doStuff();
}
@Bean
public LockProvider lockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(
JdbcTemplateLockProvider.Configuration.builder()
.withTableName("public.shedlock")
.withJdbcTemplate(new JdbcTemplate(dataSource))
.usingDbTime()
.build()
);
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... oxy-method