Привет, ребята, не могли бы вы рассказать мне, где я могу получить пример настройки Vertx Web с реактивным спящим режимом с использованием режима Stage?
Я просто нашел этот пример, использующий Mutiny:
https://how-to.vertx.io/hibernate-reactive-howto/
Заранее спасибо.
Я не думаю, что на данный момент есть один.
Что касается фабрики сеансов Hibernate Reactive, вы можете получить тот, который использует режим Stage через:
emf = Persistence
.createEntityManagerFactory("pg-demo", props)
.unwrap(Stage.SessionFactory.class);
Затем вы можете преобразовать Uni в CompletionStage (и наоборот) с помощью:
Uni uni = ...
CompletionStage stage = uni.subscribeAsCompletionStage();
Uni uni =Uni.createFrom().completionStage( stage );
Из любопытства, почему вы хотите использовать режим Stage?
Спасибо за объяснение,
раньше я думал об использовании stage mode и vertx для уменьшения сторонних зависимостей,
к тому же я не знаком с мятежом, и у меня были некоторые сомнения по поводу использования этой библиотеки. Стабильно ли оно и есть ли у него хорошее сообщество для обсуждения?
Прошу прощения за открытие незначительного дела, в следующий раз я воспользуюсь форумом.
Да, Mutiny довольно стабилен. и они обычно довольно быстро отвечают на вопрос. Вы можете найти веб-сайт со всеми подробностями о сообществе здесь: https://smallrye.io/smallrye-mutiny/
В любом случае, нет ничего плохого в использовании CompletionStage API, я просто считаю, что Mutiny помогает писать более чистый код.
На этой неделе я попытаюсь создать пример, который использует CompletionStage, но пока вы можете попытаться преобразовать его, используя эту таблицу в документации Hibernate Reactive: http://hibernate.org/reactive/documentation/1.0/reference/html_single / # _ apis_for_chaining_reactive_operations
Не извиняюсь, отзывы нам нравятся :-)
Я не уверен, что есть действительно острая необходимость в отдельном примере, показывающем Vert.x и CompletionStage
, просто потому, что примеры были бы такими похожими. И я согласен с тем, что Mutiny - гораздо более удобный API для использования с HR. Но я думаю, что если вы захотите это сделать, это, вероятно, не так уж и много. Не думаю, что буду беспокоиться.
Я создал этот псевдоним JBang для примера, который не использует Mutiny: https://github.com/DavideD/jbang-rep/blob/main/StageVerticle.java
После того, как вы установили JBang, вы можете запустить его с помощью:
jbang stage-verticle@DavideD/jbang-rep
И вы можете открыть его в своем ide (например, IDEA) с помощью:
jbang edit --open stage-verticle@DavideD/jbang-rep
(Даже если вы не знакомы с JBang, если вы скопируете этот класс в новый проект и добавите зависимости вверху, он будет работать).
В любом случае он должен дать вам представление о том, как использовать Future и CompletionStage.
Но я по-прежнему считаю, что вам стоит попробовать Mutiny.
Ваше здоровье.
Я закрываю этот вопрос, но дайте мне знать, если у вас возникнут дополнительные вопросы.
Благодаря @DavideD и @gavinking я прочитал и попробовал приведенный вами пример, и он работает. Конечно, я попробую использовать Mutiny, я только что обнаружил, что он предоставляет некоторые возможности для разработчиков, чем Stage API, я думаю. Просто иногда я должен быть связан политикой, чтобы выбрать Стадию или Мятеж.
С Уважением
@ arifpratama398 Я заметил пару ошибок в этом примере. Я не выполнил все обещания и дважды создавал фабрику. Я его обновил. Если вы используете jbang, обязательно запустите его с jbang --fresh stage-verticle@DavideD/jbang-rep
.
Кроме того, исходный пример никогда не закрывает фабрику, но я добавил ее в метод остановки.
@gavinking Должно быть закрытие фабрики, когда вертикаль остановлена, не так ли?
Наверное.
Я полагаю, что в данном случае это не имеет никакого значения, но это то, что нужно иметь в виду для реальных приложений.