#spring #spring-batch #spring-integration #shedlock #distributed-lock
#весна #spring-batch #spring-интеграция #shedlock #распределенная блокировка
Вопрос:
Я объединяю весеннюю партию и весеннюю интеграцию, я использую опросник с кукурузой:
@Bean
@SchedulerLock(name = "importEntitiesRiskCodes", lockAtMostForString = "PT5M")
public IntegrationFlow integrationFlow() {
return IntegrationFlows.from(fileReadingMessageSource(),
c -> c.poller(Pollers.cron("0-7 1-59/5 * * * ?").maxMessagesPerPoll(maxFilesPerPoll)))
.channel(fileIn())
.transform(fileMessageToJobrequest())
.handle(jobLaunchingGateway())
.log()
.get();
}
Я знаю, что JDBC обеспечивает интеграцию с Spring JDBCLockRepository
, но я хочу знать, как использовать ShedLock.
Ответ №1:
Из вашего описания неясно, как вы вообще собираетесь использовать эту блокировку, но, согласно этой статье, не похоже, что есть что-то, связанное с Spring Integration.
С другой стороны, даже если я не знаком с библиотекой, неплохо добавить LockRegistry
реализацию ShedLock в Spring Integration. Хотя это может не иметь отношения к вашей задаче…
Комментарии:
1. Приветствую Артема, прежде всего, спасибо. Я отредактировал свой вопрос. Да, я могу использовать его в качестве предложенного примера, но проблема в том, что я хочу воспользоваться опросником, который предлагает Spring Integration, и объединить его с Shedlock.
2. Ну, то, что вы показываете, не имеет смысла. Эта аннотация не будет делать ничего ценного во время выполнения. Вероятно, вам нужно подумать о пользовательской
Trigger
реализации вместо cron.3. Да, это именно то, что я сделал. Спасибо, я хотел узнать, есть ли такая интеграция в коробке.
4. хорошо из коробки JdbcLockRegistry