首页 > 解决方案 > 如何在 flink 中模拟异步操作与可完成的未来

问题描述

我正在尝试测试我的RichAsyncFunctionimpl,但我遇到了以下问题。主要流程是在客户端上调用 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.

标签: javaapache-flinkflink-streamingamazon-sagemakercompletable-future

解决方案


推荐阅读