通过回调方法将MyRequestService连接到具有Quarkus/Mutiny的反应式REST GET端点 [英] Connect MyRequestService to Reactive REST GET endpoint with Quarkus/Mutiny through callback method
本文介绍了通过回调方法将MyRequestService连接到具有Quarkus/Mutiny的反应式REST GET端点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Quarkusdocumentation将Mutiny库指定为反应性用例的首选库;
例如;
最突出的是,大多数Mutiny示例都使用新的字符串作为示例。 因此,我的问题仍然存在;
如何在Quarkus中连接MyRequestService和Mutiny
如下所示:
Uni<MyRequestService> lMyRequestServiceUni = Uni.createFrom().item( ... ) ...
MyRequestService已使用回调结构,所以我尝试了对Mutiny使用回调方法。
推荐答案
Mutiny与callback-based APIs集成时使用Emitter;
https://smallrye.io/smallrye-mutiny/getting-started/creating-unis
因此MyRequestService或底层回调对象需要实现UniEmitterConsumer。 但首先,要成为Reactive,我的旧阻塞REST终结点需要返回Uni;MyJsonResult;而不是MyJsonResult;
ServiceResource只是将调用转发给服务。
MyRequestService创建一个MyJsonResultConsumer并将其传递给Mutiny发射器。生成的Uni;MyJsonResult&>将返回给ServiceResource。
最后,MyJsonResultConsumer是实际的回调对象;方法Ready()在UniEmitter上调用Complete(),结束对Mutiny的回调。
请记住,Mutiny需要向UniEmitter提供一个调用(回调)以接受(),因此您应该检查空指针(或使用Semaphoreid)。👮🏻♂️这篇关于通过回调方法将MyRequestService连接到具有Quarkus/Mutiny的反应式REST GET端点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文