Как я могу настроить несколько блокировок для запланированных задач весной?JAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу настроить несколько блокировок для запланированных задач весной?

Сообщение Anonymous »

Я пытаюсь создать две конфигурации Shedlock в Springboot, чтобы иметь возможность заблокировать мои запланированные задачи, используя разные таблицы < /p>

Код: Выделить всё

// Main lock provider
@Bean("mainLockProvider")
public LockProvider mainLockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(
JdbcTemplateLockProvider.Configuration.builder()
.withJdbcTemplate(new JdbcTemplate(dataSource))
.usingDbTime()
.withTableName("main_shedlock_table")
.build());
}

// Secondary lock provider
@Bean("secondaryLockProvider")
public LockProvider secondaryLockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(
JdbcTemplateLockProvider.Configuration.builder()
.withJdbcTemplate(new JdbcTemplate(dataSource))
.usingDbTime()
.withTableName("secondary_shedlock_table")
.build());
}
Но кажется, что невозможно указать, какой поставщик блокировки использует при определении моих запланированных задач, аннотация @Schedulerlock не принимает блокировку в его параметре

Код: Выделить всё

@Scheduled(cron = "*/5 * * * *")
@SchedulerLock(name = "some_scheduled_task", lockAtLeastFor = "PT15S", lockAtMostFor = "PT1M")
public void scheduledTaskUsingMainLockProvider() {
// Should have created a lock entry in table "main_shedlock_table"
}

@Scheduled(cron = "*/5 * * * *")
@SchedulerLock(name = "some_other_scheduled_task", lockAtLeastFor = "PT15S", lockAtMostFor = "PT1M")
public void scheduledTaskUsingSecondaryLockProvider() {
// Should have created a lock entry in table "secondary_shedlock_table"
}
Можно ли достичь того, что я пытаюсь сделать?


Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-spring

Вернуться в «JAVA»