[导入]WWF工作流引擎的一个奇怪现象

在使用WWF实现状态机工作流时遇到状态改变延迟的现象,即使触发了状态事件,状态机的状态也需要等待大约200到300毫秒才能更新。通过加入状态跟踪服务确认这一异步操作的存在。

昨天在对做工作流服务时调试发现WWF的状态机工作流有一个奇怪现象:触发状态事件后不会马上改变状态机的状态,而是要等一段时间状态才改变过来。单元测试代码如下:


 
IWorkflowService ws = wm.GetWorkflowService( " OrderWorkflow " ); Guid id = ws.StartWorkflow( null ); System.Threading.Thread.Sleep( 500 ); // 如果省略这句,单元测试会失败 Assert.AreEqual(ws.GetWorkflowCurrentState(id), " WaitingForOrderState " ); ws.DoAction(id, " Create " , " my order " ); System.Threading.Thread.Sleep( 500 ); Assert.AreEqual(ws.GetWorkflowCurrentState(id), " OrderOpenState " ); IProcessStation ps = container[ typeof (IProcessStation)] as IProcessStation; Assert.AreEqual(ps.OrderId, " my order " );
间隔时间大概是200多毫秒(在实际测试中间隔200毫秒出错,间隔300成功)。我加入了工作流状态跟踪服务,改变状态的操作是异步进行的,不过延迟这么久也有点夸张了,不知道是设置问题还是测试版本的BUG,还是本来就是这样设计的。现在还无法想出这个延迟时间会不会对业务逻辑带来什么问题。 aggbug.aspx?PostID=503
文章来源: http://www.agilelabs.cn/blogs/linkin/archive/2006/01/10/503.aspx

转载于:https://www.cnblogs.com/veryverygood/archive/2006/01/16/318033.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值