首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Cadence工作流中轮询外部状态转换

在Cadence工作流中轮询外部状态转换
EN

Stack Overflow用户
提问于 2019-08-20 03:22:35
回答 1查看 396关注 0票数 1

我有一个Cadence工作流,其中我需要轮询外部AWS API,直到特定资源转换,这可能需要一些时间。我假设我应该让每个单独的“checkStatus”请求一个活动,并让工作流执行睡眠/检查循环。但是,这意味着我的工作流历史记录中可能有无限数量的活动调用。这令人担忧吗?有没有更好的方法来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-08-20 03:59:05

这取决于您希望轮询的频率。

  • 对于不频繁的轮询(每分钟或更慢),请使用服务器端重试。在调用活动时指定一个RetryPolicy (或RetryOptions )。在RetryPolicy中,指定指数系数1和轮询频率的初始间隔。然后,如果被轮询的资源未就绪,并且服务器将在指定的重试策略过期间隔内重试,则使活动失败。
  • 对于每隔几秒或更快的非常频繁的轮询,解决方案是在活动实现中将轮询实现为一个循环,该循环轮询,然后在轮询间隔内休眠。为了确保轮询活动在worker失败/重新启动的情况下及时重新启动,活动必须在每次迭代时进行心跳。使用适当的RetryPolicy重新启动此类失败的活动。
  • 在极少数情况下,当轮询需要定期执行一系列活动或活动参数应在两次重试之间更改时,可以使用子工作流。诀窍是,父母不知道孩子调用continue as new。只有当子进程完成或失败时,它才会收到通知。因此,如果子级执行循环中的活动序列,并定期调用continue as new,则在子级完成之前,父级不会受到影响。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57562772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档