digital-garden/dev/java/quarkus/StartupEvent в Quarkus.md
Struchkov Mark bd6b7c1492
All checks were successful
continuous-integration/drone/push Build is passing
Дочерние заметки
2024-09-14 23:38:42 +03:00

1.9 KiB
Raw Blame History

aliases tags date zero-link parents linked
maturity/🌱
2024-09-10
../../../meta/zero/00 Quarkus
../../../meta/zero/00 Снипеты для Java

StartupEvent позволяет выполнить операции после запуска сервиса

@ApplicationScoped  
public class StartUp {  
  
    void onStart(@Observes StartupEvent event) {  
        
    }  
  
}

Но может возникнуть проблема с контекстом кваркуса.

ERROR [io.qua.mut.run.MutinyInfrastructure] - Mutiny had to drop the following exception: java.lang.IllegalStateException: No current Vertx context found

Для ее решения можно сделать следующее:

@ApplicationScoped  
public class StartUp {  
  
    void onStart(@Observes StartupEvent event) {  
        Unis.voidItem()  
			.emitOn(MutinyHelper.executor(vertx))
			.subscribe().with(  
			    ok -> {},  
		        th -> {}
        )
    }  
  
}

@UtilityClass  
public class VertxHelper {  
  
    public static Executor getExecutor(Vertx vertx) {  
        final Context currentContext = Vertx.currentContext();  
        if (checkNotNull(currentContext)) {  
            return MutinyHelper.executor(currentContext);  
        } else {  
            return MutinyHelper.executor(vertx);  
        }  
    }  
  
}

В самом начале пайпа мы добавляем .emitOn(MutinyHelper.executor(vertx)), который создает нам контекст.


Мета информация

Область:: Родитель:: Источник:: Создана:: 2024-09-10 Автор::

Дополнительные материалы

Дочерние заметки