java - 如果没有消息出现,Vertx如何让消费者超时

标签 java vert.x

如果在 x 秒超时后没有出现消息,我想抛出一个错误。我找不到任何内置的方法来做到这一点。有什么想法吗?

这是我当前的代码:

consumer = vertx.eventBus().consumer(correlationId);

consumer.handler(message -> {
    message.reply("Received");
    consumer.unregister();
});

consumer.exceptionHandler(exception -> {
    System.out.println("error");
    consumer.unregister();
});

最佳答案

您可以在创建消费者后使用延迟任务。

vertx.setTimer(15000, l -> {
       System.out.println("error");
       consumer.unregister();
    });

关于java - 如果没有消息出现,Vertx如何让消费者超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58484691/

相关文章:

logging - 顶点日志记录 : access to request context

testing - Vertx 使用 Handler<AsyncResult<>> 参数模拟一个异步方法

java - 如何使用 while() 循环在 vertx 上运行无限循环

java - 运行应用两次即可工作

java - Ant 部署问题

java - 垃圾收集中疏散和压缩之间的根本区别是什么?

java - 如何使用struts更新和读取Arraylist对象中的单选按钮选择值(每行一个)

java集合用作 map 和检索数据

java - Vertx Event 总线桥接 'io.vertx~mod-web-server~2.0.0' ,未获取数据

javascript - Vertx JS Eventbus 连接正在创建然后关闭