日志中出现Quarkus EventBus requestandforget - timeout错误



当尝试使用Quarkus(version 2.2.9.2 . final)EventBusrequestAndForget@ConsumeEvent方法返回void,即使处理过程没有任何问题,日志中也会出现以下异常:

OK

2012-06-07 09:44:04 064 ERROR [io.qua.mut.run.MutinyInfrastructure]Mutiny不得不放弃以下几点exception:(TIMEOUT,-1)等待30000(ms)应答超时。地址:__vertx.reply。3、repliedAddress: receivedSomeEvent

消费者代码:

@ApplicationScoped
public class ConsumerManiac{
@ConsumeEvent(value = "receivedSomeEvent")
public void consume(SomeEvent someEvent ) {
System.out.println("OK");
}
}
生产者代码(一个REST端点):
public class SomeResource {
private final EventBus eventBus;
@Inject
public SomeResource (EventBus eventBus) {
this.eventBus = eventBus;
}
@POST
public Response send(@Valid SomeEvent someEvent) {
eventBus.requestAndForget("receivedSomeEvent", someEvent);
return Response.accepted().build();
}
}

如果消费者方法被更改为返回某个值,则日志中不会出现异常。

@ApplicationScoped
public class ConsumerManiac{
@ConsumeEvent(value = "receivedSomeEvent")
public String consume(SomeEvent someEvent ) {
System.out.println("OK");
return "ok";
}
}

是否有任何缺失的代码片段,因此不发生异常(即使处理结束没有任何问题)?

参考: https://quarkus.io/guides/reactive-event-bus implementing-fire-and-forget-interactions

全部加:

2022-06-07 09:44:04 064 ERROR [io.qua.mut.run.MutinyInfrastructure]Mutiny不得不放弃以下几点exception:(TIMEOUT,-1)等待30000(ms)应答超时。地址:__vertx.reply。3、repliedAddress: receivedSomeEventio.vertx.core.eventbus.impl.ReplyHandler.handle (ReplyHandler.java: 76)在io.vertx.core.eventbus.impl.ReplyHandler.handle (ReplyHandler.java: 24)在io.vertx.core.impl.VertxImpl InternalTimerHandler.handle美元(VertxImpl.java: 893)在io.vertx.core.impl.VertxImpl InternalTimerHandler.handle美元(VertxImpl.java: 860)io.vertx.core.impl.EventLoopContext.emit (EventLoopContext.java: 50)在io.vertx.core.impl.DuplicatedContext.emit (DuplicatedContext.java: 168)在io.vertx.core.impl.AbstractContext.emit (AbstractContext.java: 53)在io.vertx.core.impl.VertxImpl InternalTimerHandler.run美元(VertxImpl.java: 883)io.netty.util.concurrent.PromiseTask.runTask (PromiseTask.java: 98)在io.netty.util.concurrent.ScheduledFutureTask.run (ScheduledFutureTask.java: 170)在io.netty.util.concurrent.AbstractEventExecutor.safeExecute (AbstractEventExecutor.java: 164)在io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks (SingleThreadEventExecutor.java: 469)运行(NioEventLoop.java:503io.netty.util.concurrent.SingleThreadEventExecutor 4.美元运行(SingleThreadEventExecutor.java: 986)在io.netty.util.internal.ThreadExecutorMap 2.美元运行(ThreadExecutorMap.java: 74)在io.netty.util.concurrent.FastThreadLocalRunnable.run (FastThreadLocalRunnable.java: 30)在java.base/java.lang.Thread.run (Thread.java: 833)

文档不正确。

请求期望一个响应。你想用send而不是request。

见https://github.com/quarkusio/quarkus/issues/31045

我必须返回任意值以避免此异常。

相关内容

  • 没有找到相关文章

最新更新