EventListener и Retryable - PullRequest
       13

EventListener и Retryable

0 голосов
/ 08 марта 2019

Я хотел бы вызвать некоторый код после запуска моего приложения. Есть ли способ обработать событие:

Started SomeApp in 14.905 seconds (JVM running for 16.268) 

Я собираюсь попробовать, если другое приложение работает. Я пытался использовать Retryable, но он не выполнялся до запуска приложения, и выдается исключение, поэтому приложение завершается.

    @EventListener
    fun handleContextRefresh(event: ContextRefreshedEvent) {

        retryableInvokeConnection()
    }

    @Retryable(
        value = [RetryableException::class, ConnectionException::class],
        maxAttempts = 100000,
        backoff = Backoff(delay = 5)
    )
    private fun retryableInvokeConnection() {
    }

    @Recover
    private fun retryableInvokeConnectionExceptionHandler(ex: ConnectionException) {
    }

Может быть, я должен использовать PostConstruct и цикл while.

1 Ответ

1 голос
/ 08 марта 2019

Вы не можете вызвать метод @Retryable в пределах одного и того же компонента, он обходит прокси с перехватчиком повторных попыток.Переместите метод в другой компонент и введите его.

Событие лучше, чем использование @PostConstruct.

...