业务工作流平台设计(四)

时间:2021-12-06 02:44:55

自定义活动(一)

这一小节要讲的东西,目前我认为是最重要的东西。这是业务工作流平台中非常重要的一部分;;也是模板的重要组成部分。我们将从以下几个方面讲述自定义活动:

l  尽可能减少占有时间

l  数据交换

l  锁定处理

l  保持状态的一致性及完整性

l  中止活动的运行

以下是针对自定义审核活动特有的设计

l  功能逻辑的设计

l  回退与重新递交

l  跨审的实现

尽可能减少占有时间

WWF的一些技术细节与应用体会(一)中我讲过持久化的相关描述,该节虽然不讲技术化的问题,但却与锁定时间有关。所以不得不提SqlWorkflowPersistenceService,它的构造函数里面有一个参数instanceOwnershipDuration用来指定占有的时间。占有的时间过长对于时效性处理是很有害处的。所以我们应当尽量减少instanceOwnershipDuration的值。

在现实生活时每个人的处理速度是不一样的,有的处理的快,有的处理的慢。有的人在处理过程中会去打点水,上个厕所什么的……那么我们究竟要将instanceOwnershipDuration设置为多少才合适?可能很多人会比较难以选择。

其时,我这里是在故意误导大家!一开始的时候我也这么想过。那么有什么方法可以设置到一个比较小的范围(如10s)就可以让所有的处理都可以满足要求。这里有一个现象我得说一下。一个处理过程中计算机所要做的工作有两方面的内容:一是收集用户输入的信息;二是提交数据并进行相应的自动化处理。对于第一点来讲,占用的时间是不可准确估计的,但对于第二点来讲,占用的时间是极其有限的(一般情况下10s足够了)。我想大家可能知道我在说什么了。那就是我们在工作流运行期间不负责处理用户信息的收集。

那么如何做到这一点呢?请看下面的小节。待续