1

AsyncHornetQHTWorkItemHandlerKnowledgeRuntimeに登録しました

AsyncHornetQTaskClient asyncHornetQTaskClient=new AsyncHornetQTaskClient("Async-Task-ProcEngine-Client");
        AsyncHornetQHTWorkItemHandler asyncHornetQHTWorkItemHandler = new AsyncHornetQHTWorkItemHandler(asyncHornetQTaskClient,knowledgeSession, OnErrorAction.RETHROW);
        asyncHornetQHTWorkItemHandler.setPort(5445);
        asyncHornetQHTWorkItemHandler.setIpAddress("localhost");
        logger.debug("Asycnhronous work-item-handler connecting....");
        asyncHornetQHTWorkItemHandler.connect();
        logger.debug("Asycnhronous work-item-handler connected.");
        knowledgeSession.getWorkItemManager().registerWorkItemHandler("Human Task", asyncHornetQHTWorkItemHandler);

BaseHornetQTaskServer は、ポート 5445 で実行されているスタンドアロンの HornetQ サーバーを使用するように設定されています

public CustomHornetQTaskServer(TaskService service, String host, int port) {
        super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), host, port, true);
}

プロセス インスタンスが作成されると、タスク データベースにヒューマン タスクが正常に作成されます。

Web アプリケーションからAsyncHornetQTaskClient ( SyncTaskServiceWrapperでラップ) を使用して、タスクを実行 (完了、スキップなど) しています。

TaskService  client = new SyncTaskServiceWrapper(new AsyncHornetQTaskClient("Async-Task-Client"));
        client.connect("127.0.0.1", 5445);
        return client;

プロセス エンジンは別の VM でホストされ、デーモン/バックグラウンド サービスとして実行されます。ヒューマン タスク サービスは、Jboss 7 でホストされている Web アプリケーションに組み込まれています。

デーモン サービスのKnowledgeRuntime.WorkItemManagerは、work-item has completed というイベントをどのように取得しますか?

KnowledgeRuntime.getWorkItemManager().completeWorkItemを明示的に呼び出す必要があり ますか?

環境: JBPM 5.4.0.Final、HornetQ 2.2.14.Final、Jboss 7

4

0 に答える 0