我有一个编排,它作为单例运行,每次都使用相同的实例id。它还通过在每次迭代结束时使用ContinueAsNew来无限运行,以保持历史记录的可管理性。但是,我注意到,过去每次迭代的历史都保存在历史表中,每个迭代都有不同的执行id (正如调用ContinueAsNew时所期望的那样)。
我还每天使用一次PurgeInstanceHistoryAsync来删除任何超过14天的已完成、失败、终止或取消的编排。然而,由于无限单例编排永远不会处于这些状态中的任何一种,PurgeInstanceHistoryAsync会清理旧的执行历史记录吗?
对于周期性的单例编排(即,周期性运行但每次使用相同的实例Id的编排),也可以提出相同的问题。如果清除过程在编排运行时发生,是否会删除任何旧的历史记录,或者在执行清除时编排实际上并没有运行,这是幸运的问题吗?
发布于 2021-03-02 17:01:39
如果您查看azure存储帐户中的历史表并查询您的实例,您应该会看到使用ContinueAsNew实际上会自动清除历史。(在我的测试中,它似乎最多落后1次执行。)
调用ContinueAsNew时,实例会在退出前将一条消息排入自身队列。该消息使用新的输入值重新启动实例。保留相同的实例ID,但编排函数的历史记录实际上被截断了。
https://stackoverflow.com/questions/66431290
复制相似问题