Hibernate-reactive: مثال على إعداد المرحلة التفاعلية Vert.X السبات

تم إنشاؤها على ٧ يونيو ٢٠٢١  ·  10تعليقات  ·  مصدر: hibernate/hibernate-reactive

مرحبًا يا شباب ، هل يمكن أن تخبرني أين يمكنني الحصول على مثال لإعداد ويب Vertx مع تفاعل السبات باستخدام وضع المرحلة؟

لقد تمكنت للتو من العثور على هذا المثال الذي يستخدم Mutiny:
https://how-to.vertx.io/hibernate-reactive-howto/

شكرا لك مقدما.

question

ال 10 كومينتر

لا أعتقد أن هناك واحدة في الوقت الحالي.

بقدر مصنع جلسة 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 );

بدافع الفضول ، لماذا تريد استخدام وضع المرحلة؟

شكرا على الشرح،
فكرت سابقًا في استخدام وضع المرحلة والرأس لتقليل تبعيات الطرف الثالث ،
بالإضافة إلى أنني لست على دراية بالتمرد ، وكان لدي بعض الشكوك في استخدام هذه المكتبة. هل هو مستقر ولديه مجتمع جيد للمناقشة؟

أنا آسف لفتح قضية غير مهمة ، في المرة القادمة سأستخدم المنتديات بدلاً من ذلك.

نعم ، التمرد مستقر جدًا. وعادة ما يجيبون على السؤال بسرعة كبيرة ، يمكنك العثور على موقع الويب الذي يحتوي على جميع التفاصيل حول المجتمع هنا: https://smallrye.io/smallrye-mutiny/

على أي حال ، لا حرج في استخدام واجهة برمجة تطبيقات CompletionStage ، لقد وجدت للتو أن Mutiny يساعدك في كتابة كود أكثر وضوحًا.
سأحاول إنشاء مثال يستخدم CompletionStage هذا الأسبوع ، ولكن في غضون ذلك ، يمكنك محاولة تحويله باستخدام هذا الجدول في مستندات Hibernate Reactive docs: http://hibernate.org/reactive/documentation/1.0/reference/html_single / # _ apis_for_chaining_reactive_operations

لا داعي للأسف ، نحن نحب التعليقات :-)

لست متأكدًا من وجود حاجة قوية حقًا لمثال منفصل يظهر Vert.x و CompletionStage ، وذلك ببساطة لأن الأمثلة ستكون متشابهة جدًا . وأنا أوافق على أن Mutiny هي واجهة برمجة تطبيقات أكثر راحة للاستخدام مع الموارد البشرية. لكني أعتقد أنه إذا كنت تريد القيام بذلك ، فربما لا يكون هناك الكثير من العمل. لا أعتقد أنني سوف أزعج نفسي.

لقد أنشأت هذا الاسم المستعار JBang للمثال الذي لا يستخدم Mutiny: https://github.com/DavideD/jbang-rep/blob/main/StageVerticle.java

بمجرد تثبيت JBang ، يمكنك تشغيله باستخدام:

jbang stage-verticle@DavideD/jbang-rep

ويمكنك فتحه في بيئة تطوير متكاملة (IDEA على سبيل المثال) باستخدام:

jbang edit --open  stage-verticle@DavideD/jbang-rep

(حتى إذا لم تكن معتادًا على JBang ، طالما قمت بنسخ هذه الفئة في مشروع جديد وإضافة التبعيات في الأعلى ، فستعمل).

على أي حال ، يجب أن يعطيك فكرة عن كيفية استخدام Future و CompletionStage.
لكن ما زلت أعتقد أنه يجب عليك إعطاء موتيني فرصة.

هتافات.

أنا أغلق هذه المشكلة ولكن يُرجى إعلامي إذا كان لديك المزيد من الأسئلة.

بفضل DavideD و gavinking ، لقد قرأت وجربت المثال الذي قدمته ، وهو يعمل. بالتأكيد سأحاول استخدام Mutiny ، لقد اكتشفت للتو أنه يوفر بعض تجارب المطورين من Stage API ، على ما أعتقد. إنه في بعض الأحيان يجب أن ألتزم بالسياسة لاختيار المرحلة أو التمرد.

يعتبر

@ arifpratama398 لقد لاحظت بعض الأخطاء في المثال. لم أكمل كل الوعود وكنت أقوم بإنشاء المصنع مرتين. لقد قمت بتحديثه. إذا كنت تستخدم jbang ، فتأكد من تشغيله بـ jbang --fresh stage-verticle@DavideD/jbang-rep .

أيضًا ، لا يغلق المثال الأصلي المصنع أبدًا ، لكني أضفته إلى طريقة الإيقاف.
gavinking يجب أن يكون هناك مصنع مغلق عند توقف

المحتمل.

أفترض أنه في هذه الحالة لا يحدث أي فرق ، لكنه شيء يجب مراعاته للتطبيقات الحقيقية.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات