小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

jbpm的任務(wù)管理實現(xiàn)

 昵稱2807 2008-04-25
一個Task instance(任務(wù)實例)可以被分配給一個actorId (java.lang.String)。所有的Task instance都被保存在數(shù)據(jù)庫中的表jbpm_taskinstance里。當你想得到特定用戶的任務(wù)清單時,你就可以通過一個與用戶關(guān)聯(lián)的actorId來查詢這張表。

一個流程定義有一個TaskMgmtDefinition;一個TaskMgmtDefinition對應(yīng)多個swimlane,同時對應(yīng)多個task;一個swimlane有多個task,可以從TaskMgmtDefinition中通過task的名稱直接獲取相應(yīng)的task;

swimlane對象有四個屬性,分別是name(名字)、assignmentDelegation(分配代理類)、taskMgmtDefinition、tasks(Set 對應(yīng)多個task),可以增加task

task對象主要的屬性:taskMgmtDefinition、swimlane、assignmentDelegation、taskNode,需要注意的是swimlane和assignmentDelegation中間只是可以一個屬性有值,因為它們都和任務(wù)的分配有關(guān)系。

一個流程實例有一個TaskMgmtInstance;一個TaskMgmtInstance對應(yīng)多個swimlaneInstance,同時對應(yīng)多個taskInstance;一個swimlaneInstance有多個taskInstance,可以從TaskMgmtInstance中直接獲取相應(yīng)的taskInstance;

swimlaneInstance對象主要有五個屬性,分別是name、actorId、pooledActors(Set)、swimlane、taskMgmtInstance。
taskInstance對象的主要屬性:name、actorId、task、swimlaneInstance、taskMgmtInstance、pooledActors。

當對任務(wù)進行分配時,一般需要實現(xiàn)AssignmentHandler這個接口,這個接口的方法只有一個:
void assign( Assignable assignable, ExecutionContext executionContext ) throws Exception;
一個典型的實現(xiàn)(把名字是‘change nappy‘的任務(wù)交給NappyAssignmentHandler這個類來分配)



NappyAssignmentHandler類:
public void assign(Assignable assignable, ExecutionContext executionContext) {
assignable.setActorId("papa");
}
同樣,Assignable只是一個接口,它有兩個方法:setActorId()和setPooledActors(),Assignable的具體實現(xiàn)類也是兩個
swimlaneInstancehe和taskInstance。這樣就不不難理解整個任務(wù)分配流程了:
1、流程進入TaskNode節(jié)點,執(zhí)行TaskNode類的execute()方法,該方法首先獲得TaskMgmtInstance實例,然后通過它來創(chuàng)建TaskInstance。taskMgmtInstance.createTaskInstance(task, executionContext);
2、在上面的createTaskInstance(task, executionContext)里,該方法調(diào)用了taskInstance.assign(executionContext)對taskInstance進行分配。
3、在assign(executionContext)方法里,首先會判斷task屬性里是否存在swimlane,如果有的話,這個taskInstance就會分配給swimlane指定的ActorId或 PooledActors;如果不存在,再去找task屬性里 assignmentDelegation(分配代理類)通過代理類(即我們自己寫的實現(xiàn)AssignmentHandler這個接口的類)指定ActorId或 PooledActors。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多