使用持久实体是存储工作流结果的好方法吗?

Is using Durable entities a good way to store result of the workflow?

我希望我的 orchestrator 函数 return 一个表示我的工作流程中发生的事情的对象,基本上是关于我的工作流程所做的一些统计数据:从 API 检索的用户,插入数据库的用户, ...

我到现在为止所做的是 return 来自我的活动函数的这些信息,并在 returning 它们之前将它们聚合到我的协调器中:

return new
{
    UserInsterted = myActivity1.InsertedUsersNumber,
    UsersRetrievedFromApi = myActivity2.RetrievedUserNumber
};

但是我现在有 运行 并行的活动(感谢 Task.WhenAll(myActivity1, myActivity2) 所以我不能 return 不同类型的结果。

这就是为什么我想知道在我的代码中使用持久实体来存储我想要 return 最后在我的编排器中的所有内容是否是一个很好的解决方案。

我认为您不需要持久实体来存储工作流程的结果。即使您的 activity 函数 return 不同类型的值,您使用的语法仍然有效。

也就是说,如果您想将活动的结果保存在编排 之外,那么持久实体可能是一个不错的选择。然后他们可以独立查询,甚至不需要你的编排完成。