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