gpt4 book ai didi

node.js - 60 秒后阻止操作调用超时 - 如何访问结果?

转载 作者:太空宇宙 更新时间:2023-11-03 22:05:07 31 4
gpt4 key购买 nike

我正在尝试将 Apache OpenWhisk 操作(使用 JavaScript SDK)作为远程函数调用。我想等待函数结果可在我的应用程序中使用。

这通常通过使用阻塞调用来处理,例如

ow.actions.invoke({name, blocking: true, result: true, params})

...但在这种情况下,该操作需要几分钟才能完成,这会导致 HTTP 连接超时。 SDK 在六十秒后抛出错误。

如何检索耗时超过一分钟的调用的操作结果?

最佳答案

Apache OpenWhisk 只会在 65 秒的默认时间限制内保留阻塞调用的打开连接。此限制由 platform configuration 管理(而不是以每个用户为基础)。

如果您需要调用操作并阻塞等待结果(对于长时间运行的操作),您需要执行以下操作:

  • 使用非阻塞调用来调用操作。
  • 使用返回的激活标识符轮询激活结果 API。
  • 激活结果的 HTTP 响应将返回 HTTP 404 响应,直到操作完成。

当轮询非阻塞调用的激活结果时,您应该对允许的最大轮询时间施加限制。这是因为其他情况(例如无效的激活标识符)可能会返回 HTTP 404。强制执行时间限制可确保在应用程序代码或平台出现问题时,轮询循环最终停止!

将最大轮询时间设置为操作超时限制(加上一个小的偏移量)是一个好方法。

关于node.js - 60 秒后阻止操作调用超时 - 如何访问结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144599/

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