gpt4 book ai didi

java - 在 Netty 中解析具有返回值的 ChannelPromise?

转载 作者:行者123 更新时间:2023-12-02 11:19:01 27 4
gpt4 key购买 nike

我的 channel 有时会发生罕见且缓慢的操作。当需要执行此操作时,需要停止 channel 上的所有处理,直到操作完成并检查返回值。我的想法是异步处理这个问题,并在该操作未完成时关闭 AUTO_READ。我不想阻塞此操作的 IO 线程。

我最初的想法是让我的服务代码解析 ChannelPromise 并传递操作的返回值。但似乎没有办法为 ChannelPromise 设置返回值?

另一个想法是让服务返回 CompletableFuture 并让我的处理程序代码使用 thenApply() 注册异步回调。然后,回调代码会将回调逻辑放置到 channel 的事件循环中以确保线程安全。

是否有首选或内置机制来获取 Netty 异步操作的结果?为什么ChannelPromise没有提供设置返回值的方法?

最佳答案

您可以只使用 Promise<T>为了它。

您可以通过以下方式创建一个:

Promise<ReturnType> promise = channel.eventLoop().newPromise<ReturnType>();

关于java - 在 Netty 中解析具有返回值的 ChannelPromise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50066782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com