java - 如何在 flink 中模拟异步操作与可完成的未来
问题描述
我正在尝试测试我的RichAsyncFunction
impl,但我遇到了以下问题。主要流程是在客户端上调用 API 调用,但是当我将响应模拟为可完成的未来并使用它测试 step 函数时,我遇到了序列化错误。
DataStream<MyObject> resultStream = AsyncDataStream.unorderedWait(stream,
new MyAsyncStep(), timeout, TimeUnit.MILLISECONDS, capacity);
我知道可完成的未来本身是不可序列化的,但是MyAsyncStep
当我在 IDE 或 flink 集群中运行它时工作正常,并且在我运行测试用例时失败。在asyncInvoke
我有的方法中
List<CompletableFuture> completableFutureList = getCompletableFutureList(client, input);
任何人都知道如何模拟getCompletableFutureList
?目前它给了我getCompletableFutureList not serializable. The object probably contains or references non serializable fields.
解决方案
推荐阅读
- java - 我在 Java 中遇到 InputMismatchException 问题
- java - 主键冲突 Java Spring Boot SQL Server
- javascript - 在 Cocos2d 中定位精灵的 AnchorPoint
- vue.js - 检查 JWT 令牌的有效性 - beforeEnter
- excel - 编译错误;用户定义类型未定义
- java - 无法创建与数据库服务器的连接 - Android Studio 中的 JDBC 驱动程序
- javascript - Mapbox GL JS:绘制没有坐标的标记
- java - Intellij IDEA 2020.1 终极版:无法将证书添加到捆绑 jre
- angular - 角度刷新浏览器回到初始页面
- flutter - TextInputAction.next 使键盘消失