3

私は次のタイマーを実装しています:

<task-node name="recenze" create-tasks="false">
    <event type="node-enter" >
        <action expression="#{assignActors.assignActors(vybraniUzivatele,'recenze')}"></action>
    </event>

    <timer name="trolololo" duedate="5 business seconds" transition="transitionToVyporadaniPripominek" />

    <task name="recenze" description="A003: Ustanovení recenzentů" />

    <transition name="transitionToVyporadaniPripominek" to="vyporadaniPripominek" />
</task-node>

ここに問題があることを見つけようとしましたが、失敗しました。インターネット上の多くの情報源によると、タイマー宣言は正しいようです。jbpm_jobjBPMテーブルには、すべての情報が正しく設定されたタイマーによって開始されたジョブがあります。ただし、タイマーはトリガーされません。

ここで問題が発生する可能性がある場所を誰かが知っていますか?どうもありがとう....

4

4 に答える 4

1

Cahnge は create-task フラグを false から true にハイライトし、それが機能するようにしました。

于 2015-12-31T11:32:12.827 に答える
0

プロセスインスタンスごとにセッションを使用していますか? はいの場合、安全なポイントが来るたびに、そのプロセス インスタンスに関連するすべてのデータがセッション情報とともに db に保持され、セッションはメモリから消去されます。これで、タイマーがそのセッションでスケジュールされました。戻ってセッションを復元すると、タイマーをそのセッションに再度リンクして、メモリにロードし、ジョブとしてスケジュールする必要があります。

于 2013-05-27T09:40:40.067 に答える
0

前の回答の例とまったく同じように、タイマーを宣言する方法は次のとおりです。

<boundaryEvent id="_ID" name="TimerEvent" attachedToRef="_ANOTHERID" >
      <timerEventDefinition>
        <timeCycle xsi:type="tFormalExpression">500ms</timeCycle>
      </timerEventDefinition>
</boundaryEvent>

違いは、スレッドや中間キャッチ イベントを使用しないことです。特定のプロセスに関連付けられた境界イベントは、タイマーをトリガーして待機状態を引き起こすのに十分です。これはテスト済みで、正しく動作します。

それが役に立てば幸い :)

于 2013-06-05T11:15:37.330 に答える
0

JBPM のタイマーの概念を理解するために使用した BPMN ファイルのコードを貼り付けます。

    <?xml version="1.0" encoding="UTF-8"?>
             <definitions id="Definition"
             targetNamespace="http://www.example.org/MinimalExample"
             typeLanguage="http://www.java.com/javaTypes"
             expressionLanguage="http://www.mvel.org/2.0"
             xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
             xmlns:g="http://www.jboss.org/drools/flow/gpd"
             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
             xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
             xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
             xmlns:tns="http://www.jboss.org/drools">




 <process processType="Private" isExecutable="true" id="TimerBoundaryEventTest"                                                                                                                                                                                                    name="Timer Boundary Event Test" tns:packageName="defaultPackage" >



         <!-- nodes -->
        <startEvent id="_1" name="StartProcess" />
        <subProcess id="_2" name="SubProcess"  >
        <!-- nodes -->
        <startEvent id="_2-1" name="StartSubProcess" />
        <endEvent id="_2-3" name="EscalationEvent" />
        <scriptTask id="_2-4" name="Script" scriptFormat="http://www.java.com/java" >
          <script>System.out.println("In Script Task");
           Thread.sleep(6000);
            System.out.println("In Script Task After Sleep");
            Thread.sleep(2000);</script>
        </scriptTask>
        <!-- connections -->
        <sequenceFlow id="_2-4-_2-3" sourceRef="_2-4" targetRef="_2-3" />
        <sequenceFlow id="_2-1-_2-4" sourceRef="_2-1" targetRef="_2-4" />
        </subProcess>
        <endEvent id="_3" name="EndProcess" >
            <terminateEventDefinition/>
        </endEvent>
        <boundaryEvent id="_4" name="TimerEvent" attachedToRef="_2" >
          <timerEventDefinition>
            <timeDuration xsi:type="tFormalExpression">500ms</timeDuration>
          </timerEventDefinition>
        </boundaryEvent>
        <scriptTask id="_5" name="Goodbye" >
          <script>System.out.println("Timer handled");</script>
        </scriptTask>
        <endEvent id="_6" name="EndProcess" >
            <terminateEventDefinition/>
        </endEvent>
        <intermediateCatchEvent id="_7" name="Timer" >
          <timerEventDefinition>
            <timeCycle xsi:type="tFormalExpression">2000###2000</timeCycle>
          </timerEventDefinition>
        </intermediateCatchEvent>

        <!-- connections -->
        <sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" />
        <sequenceFlow id="_7-_3" sourceRef="_7" targetRef="_3" />
        <sequenceFlow id="_4-_5" sourceRef="_4" targetRef="_5" />
        <sequenceFlow id="_5-_6" sourceRef="_5" targetRef="_6" />
        <sequenceFlow id="_2-_7" sourceRef="_2" targetRef="_7" />

      </process>

      <bpmndi:BPMNDiagram>
        <bpmndi:BPMNPlane bpmnElement="TimerBoundaryEventTest" >
          <bpmndi:BPMNShape bpmnElement="_1" >
            <dc:Bounds x="16" y="85" width="48" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_2" >
            <dc:Bounds x="96" y="16" width="223" height="187" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_2-1" >
            <dc:Bounds x="115" y="62" width="48" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_2-3" >
            <dc:Bounds x="205" y="132" width="48" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_2-4" >
            <dc:Bounds x="190" y="63" width="80" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_3" >
            <dc:Bounds x="431" y="85" width="48" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_4" >
            <dc:Bounds x="16" y="235" width="48" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_5" >
            <dc:Bounds x="96" y="235" width="223" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_6" >
            <dc:Bounds x="351" y="235" width="48" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNShape bpmnElement="_7" >
            <dc:Bounds x="351" y="85" width="48" height="48" />
          </bpmndi:BPMNShape>
          <bpmndi:BPMNEdge bpmnElement="_2-4-_2-3" >
            <di:waypoint x="134" y="71" />
            <di:waypoint x="133" y="140" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="_2-1-_2-4" >
            <di:waypoint x="43" y="70" />
            <di:waypoint x="134" y="71" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="_1-_2" >
            <di:waypoint x="40" y="109" />
            <di:waypoint x="207" y="109" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="_7-_3" >
            <di:waypoint x="375" y="109" />
            <di:waypoint x="455" y="109" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="_4-_5" >
            <di:waypoint x="40" y="259" />
            <di:waypoint x="207" y="259" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="_5-_6" >
            <di:waypoint x="207" y="259" />
            <di:waypoint x="375" y="259" />
          </bpmndi:BPMNEdge>
          <bpmndi:BPMNEdge bpmnElement="_2-_7" >
            <di:waypoint x="207" y="109" />
            <di:waypoint x="375" y="109" />
          </bpmndi:BPMNEdge>
        </bpmndi:BPMNPlane>
      </bpmndi:BPMNDiagram>

    </definitions>

ではごきげんよう。

于 2013-02-07T05:58:13.390 に答える