none
工作流抢占问题 RRS feed

  • 问题

  • 我现在有一个状态机工作流,我现在想在这个工作流上实现抢占式。
    情况是这样的,我的状态机工作流的每一个stateActivity都对应着一个独立的应用程序。由webservices发布接口来操作工作流。在持久化数据库中可能会同时存在若干个工作流实例的数据记录。那么当一个应用程序通过webservices接口获得工作流实例,那么在另外一个终端,相同的应用程序(对应相同的stateActivity)就应该不能访问到该工作流实例。我认为这个问题的关键在于在数据库中插入记录。要不是在持久化数据库,要不是跟踪数据库,但问题是需要在工作流引擎以外插入。那么在返回工作流实例集合的时候,能排除那些被抢占过的(也就是在数据库中有记录的)。
    2009年6月18日 7:50

答案

  • 在WorkflowPersisitenceService里面有个接口,可以设置 WorkflowInstance的"Lock"属性,当其被一个Runtime加载后会被锁住

    protected override void UnlockWorkflowInstanceState(Activity state)
            {
                //todo
            }

    • 已标记为答案 55555 2009年6月18日 9:55
    2009年6月18日 9:47