Flink Stateful Functions 2.0 异步等待期间多次调用
Flink Stateful Functions 2.0 Multiple Calls During Asynchronous Wait
Flink Stateful Functions 2.0 具有进行异步调用的能力,例如对外部 API:
[https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/java.html#completing-async-requests][1].
然后暂停函数执行,直到调用完成并显示成功、失败或未知。未知是:
The stateful function was restarted, possibly on a different machine,
before the CompletableFuture was completed, therefore it is unknown
what is the status of the asynchronous operation.
当第二次调用具有相同 ID 的 paused/waiting 函数时会发生什么?
- 然后被调用者是否等待被调用函数的处理
它的异步结果使得这第二个调用以干净的方式执行,
非共享 post-异步状态?
- 或者第二次调用是在
正常的时间表,因此在当前状态之上
异步调用,然后当异步调用完成时它继续
使用异步调用时更新的状态进行处理
待定?
- 或者呼叫可能算作被呼叫者的 "restart"
函数 - 在这种情况下执行顺序是什么:
"restart" 运行,然后异步 returns 和 "restart" 执行
从现在更新的状态,或者这个顺序是相反的?
- 还是别的?
函数执行不会在异步请求完成时暂停。该 ID 的实例将继续处理消息,直到请求完成。这意味着状态可以改变,而未来是 运行.
将您的未来想象成一个临时功能,您可以发送消息,然后在有结果时向您发送消息。函数可以毫无问题地产生多个异步请求。无论哪个 future 先完成,都将首先由函数实例处理,不一定是它们生成的顺序。
Flink Stateful Functions 2.0 具有进行异步调用的能力,例如对外部 API: [https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/java.html#completing-async-requests][1].
然后暂停函数执行,直到调用完成并显示成功、失败或未知。未知是:
The stateful function was restarted, possibly on a different machine, before the CompletableFuture was completed, therefore it is unknown what is the status of the asynchronous operation.
当第二次调用具有相同 ID 的 paused/waiting 函数时会发生什么?
- 然后被调用者是否等待被调用函数的处理 它的异步结果使得这第二个调用以干净的方式执行, 非共享 post-异步状态?
- 或者第二次调用是在 正常的时间表,因此在当前状态之上 异步调用,然后当异步调用完成时它继续 使用异步调用时更新的状态进行处理 待定?
- 或者呼叫可能算作被呼叫者的 "restart" 函数 - 在这种情况下执行顺序是什么: "restart" 运行,然后异步 returns 和 "restart" 执行 从现在更新的状态,或者这个顺序是相反的?
- 还是别的?
函数执行不会在异步请求完成时暂停。该 ID 的实例将继续处理消息,直到请求完成。这意味着状态可以改变,而未来是 运行.
将您的未来想象成一个临时功能,您可以发送消息,然后在有结果时向您发送消息。函数可以毫无问题地产生多个异步请求。无论哪个 future 先完成,都将首先由函数实例处理,不一定是它们生成的顺序。