Wie kann ich mehrere LockProvider für geplante Aufgaben im Frühjahr konfigurieren?Java

Java-Forum
Guest
 Wie kann ich mehrere LockProvider für geplante Aufgaben im Frühjahr konfigurieren?

Post by Guest »

Ich versuche, in Springboot zwei Shedlock-Konfigurationen zu erstellen, um meine geplanten Aufgaben mithilfe verschiedener Tabellen sperren zu können

Code: Select all

// 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());
}
Es scheint jedoch nicht möglich zu sein, anzugeben, welcher Sperranbieter beim Definieren meiner geplanten Aufgaben verwendet werden soll. Die Annotation @SchedulerLock akzeptiert keinen LockProvider in ihrem Parameter

Code: Select all

@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"
}
Ist es möglich, das zu erreichen, was ich versuche?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post