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
Автор::

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

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