Flink Stateful Functions 2.0 能够进行异步调用,例如对外部 API:[ https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/java.html#完成异步请求][1]。
然后暂停函数执行,直到调用完成并显示 Success、Failure 或 Unknown。未知的是:
在 CompletableFuture 完成之前,有状态函数可能在另一台机器上重新启动,因此不知道异步操作的状态是什么。
当暂停/等待函数再次调用具有相同 ID 的调用时会发生什么?
- 然后被调用者是否等待被调用函数对其异步结果的处理,以便第二次调用以干净、非共享的异步后状态执行?
- 或者第二个调用是否按正常计划执行,因此在异步调用的当前状态之上,然后当异步调用完成时,它继续使用在异步调用挂起时更新的状态进行处理?
- 或者调用算作被调用函数的“重启”——在这种情况下,执行顺序是什么:“重启”运行,然后异步返回“重启”以从现在更新的状态执行,或者这个顺序是颠倒的?
- 或者是其他东西?