digital-garden/dev/java/quarkus/StartupEvent в Quarkus.md
Struchkov Mark 7ffb168e25
Some checks failed
continuous-integration/drone/push Build is failing
StartupEvent в Quarkus.md
2024-09-10 16:16:15 +03:00

73 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- maturity/🌱
date: 2024-09-10
zero-link:
- "[[../../../meta/zero/00 Quarkus|00 Quarkus]]"
- "[[../../../meta/zero/00 Снипеты для Java|00 Снипеты для Java]]"
parents:
linked:
---
`StartupEvent` позволяет выполнить операции после запуска сервиса
```java
@ApplicationScoped
public class StartUp {
void onStart(@Observes StartupEvent event) {
}
}
```
Но может возникнуть проблема с контекстом кваркуса.
```log
ERROR [io.qua.mut.run.MutinyInfrastructure] - Mutiny had to drop the following exception: java.lang.IllegalStateException: No current Vertx context found
```
Для ее решения можно сделать следующее:
```java
@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]]
**Автор**::
### Дополнительные материалы
-