مرحبًا يا شباب ، هل يمكن أن تخبرني أين يمكنني الحصول على مثال لإعداد ويب Vertx مع تفاعل السبات باستخدام وضع المرحلة؟
لقد تمكنت للتو من العثور على هذا المثال الذي يستخدم 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 );
بدافع الفضول ، لماذا تريد استخدام وضع المرحلة؟
شكرا على الشرح،
فكرت سابقًا في استخدام وضع المرحلة والرأس لتقليل تبعيات الطرف الثالث ،
بالإضافة إلى أنني لست على دراية بالتمرد ، وكان لدي بعض الشكوك في استخدام هذه المكتبة. هل هو مستقر ولديه مجتمع جيد للمناقشة؟
أنا آسف لفتح قضية غير مهمة ، في المرة القادمة سأستخدم المنتديات بدلاً من ذلك.
نعم ، التمرد مستقر جدًا. وعادة ما يجيبون على السؤال بسرعة كبيرة ، يمكنك العثور على موقع الويب الذي يحتوي على جميع التفاصيل حول المجتمع هنا: 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 يجب أن يكون هناك مصنع مغلق عند توقف
المحتمل.
أفترض أنه في هذه الحالة لا يحدث أي فرق ، لكنه شيء يجب مراعاته للتطبيقات الحقيقية.