【发布时间】:2020-12-11 09:30:40
【问题描述】:
我正在尝试在 Micronaut 中使用 RabbitMQ 获取代理确认。
听众
@RabbitListener
public class ProductListener {
@Queue(ProductTopicConstants.GET_PRODUCTS)
public String find(String text) {
return text.toUpperCase();
}
}
控制器
@Get(value = "/{text}", single = true)
public Maybe<String> Find(String text) {
iproductProducer.find(text).subscribe(item ->{
System.out.println(item);
});
return null;
}
制片人
@RabbitClient(ProductTopicConstants.FETE_BIRD_EXCHANGE)
public interface IProductProducer {
@Binding(ProductTopicConstants.GET_PRODUCTS)
Maybe<String> find(String text);
}
更新 - #1
@RabbitClient(ProductTopicConstants.FETE_BIRD_EXCHANGE)
public interface IProductProducer {
@Binding(ProductTopicConstants.GET_PRODUCTS)
Completable find(String text);
}
根据文档
客户端方法支持两种返回类型,void 和反应类型。如果该方法返回 void,则该消息将被发布并且该方法将在没有确认的情况下返回。如果返回类型是响应式类型,则会返回一个可以订阅的“冷”发布者。
但在控制器 System.out.println(item); 中,确认永远不会得到。
【问题讨论】:
标签: java micronaut micronaut-rest