你正在为费用审批实施一个 Durable Functions 工作流。业务流程协调器必须等待经理审批长达 48 小时,然后才能继续。如果在 48 小时内未收到审批,它必须自动拒绝并发送通知。该解决方案必须能够抵御重启和重放。你应在业务流程协调器中实现什么?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 等待外部事件(例如,“Approved”)并创建一个 48 小时的持久计时器,await Task.WhenAny(eventTask, timerTask),如果审批先到达则取消计时器,否则继续拒绝。.
为什么这是答案
正确的做法是等待外部事件(例如“Approved”)并创建一个 48 小时的持久计时器,然后使用 await Task.WhenAny(eventTask, timerTask)。Durable Functions 能够抵御重启和重放,因为外部事件和持久计时器都是持久化状态的一部分。如果审批事件先到达,计时器会被取消,工作流继续处理审批。如果计时器先到期,表示 48 小时内未收到审批,工作流将自动拒绝并发送通知。 其他选项不正确: 让活动函数轮询数据库并使用 Thread.Sleep 会消耗不必要的资源,并且 Thread.Sleep 不具备持久性,无法抵御重启。 使用 Thread.Sleep 暂停业务流程协调器 48 小时是错误的,因为 Thread.Sleep 不持久,且会阻塞协调器实例,不符合 Durable Functions 的异步和无状态设计原则。 使用具有不可见延迟的队列消息来模拟超时会增加复杂性,并且不如 Durable Functions 内置的持久计时器机制可靠和高效。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡