如果我有一个长时间运行的工作流程(持续数月......),并且我需要例如添加新状态或更改它。 (因为修复了错误或新功能)。
现有工作流程会怎样?他们会丢失吗?或者我需要进行一些版本控制吗?或者它会接受新的状态吗?
答案 0 :(得分:0)
如果工作流程可以正确补水,我认为它会拿起新的程序集。
答案 1 :(得分:0)
对工作流程的更改不会影响已执行的工作流程。 整个工作流程以当前状态序列化到持久性存储区。
如果你想修改现有的工作流程,你需要实际上经历一系列的箍,才能实现这一目标。
答案 2 :(得分:0)
假设已经配置了持久性,正在进行的工作流程不会丢失 - 它们会留在实例存储中等待恢复,但一般来说,大多数我已经被具有良好声誉的人阅读(Ron Jacobs / Maurice)和其他人说,对现有工作流程的几乎所有更改都能够打破正在进行的工作流程。我个人没有做过改变,但没有破坏我(但我不是一个专家),所以确定你是否需要管理不同版本的工作流程是你需要尽早处理的事情。可能在您的计划中。
您需要尽早确定错误修复和/或新功能的情况,然后确定是否允许使用当前定义完成工作流程,或者是否需要终止并重新运行新定义。
如果必须终止并重新运行,那么您不一定需要处理工作流版本控制,但是您需要处理正在进行的工作流程中的任何“工件” - 删除它们?对它们进行自己的“更新”?
如果您可以让游戏工作流程完成,并且只有新启动的流程使用更新的工作流程,则需要处理工作流程的版本控制。这就是我目前面临的问题,虽然概念并不是特别困难(WCF路由),但我发现实现细节令人生畏。