【发布时间】:2012-07-31 06:23:13
【问题描述】:
我有两个工作流服务(状态机),它们应该合作并交换信息以完成所需的行为。
我遇到的问题(但我也只有一台状态机)是有时我尝试发送当前状态不允许的操作。
有两个问题:1)我必须等待操作超时才能知道该操作是不允许的 2)由于其他问题,我正在“屏蔽”真正的超时
到目前为止,我找到了两种可能的解决方案:1)我可以更改签名以返回 true(允许)和 false(不允许)并将所有操作添加到所有状态,(不允许的操作会触发自转换) 2 ) 我总是将所有转换添加到所有状态(不允许将触发自转换),但对于不允许的转换,我将发送异常
我想知道哪个是最佳选择(当然,我也很欣赏其他可能的解决方案)。 我还想知道如何回复带有异常的请求(也许将其扔到 try/catch 中?)。
谢谢
【问题讨论】:
-
为什么不遵循异步委托执行模式? StartXXX 返回一个 IXXXHandler 实例,您可以轮询、阻塞直到完成,或者任何您想要的。您甚至可以对其进行编码,以便它在准备好继续时启动空闲的工作流......
标签: workflow-foundation-4 workflow-services