Why can the event gateway be triggered multiple times

オープン
#3,983 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
java
領域
backend

調査の方向性

まず、イベントベースゲートウェイ、グローバルシグナル、PT1Mタイマー、およびservice01、service02、service03のタスククラスを含む、提供されたBPMN定義を再現します。タイマータスクの実行中にシグナルがトリガーされたとき、どの実行パスがアクティブなままになるかを追跡し、観測された動作が意図されたゲートウェイのセマンティクスと一致するかどうかを判断したうえで、結果を文書化または修正します。

索引モデルが issue の本文から書いたものです。

説明

I define two events, a timer event and a signal event

First, the timer is triggered, and service02 sleeps for 2 hours
In the second step, trigger the signal and find that service01 and service03 are also running

Why does the signal from step two trigger? I think the signal event should not trigger when the timer has not finished executing
 <signal id="middle-event" name="thisSingle" flowable:scope="global"></signal>
  <process id="a202410221716" name="202410221716" isExecutable="true">
    <startEvent id="startEvent1" flowable:formFieldValidation="true"></startEvent>
    <eventBasedGateway id="sid-9A9FE798-922E-4FDE-A2E0-AA84BFE9662B"></eventBasedGateway>
    <intermediateCatchEvent id="sid-F1956F93-FF55-4EF1-B5CC-EC40BEAE60C9">
      <signalEventDefinition signalRef="middle-event"></signalEventDefinition>
    </intermediateCatchEvent>
    <intermediateCatchEvent id="sid-14E28DE4-7E4C-4F4F-B95B-C080EC3958A9">
      <timerEventDefinition>
        <timeDuration>PT1M</timeDuration>
      </timerEventDefinition>
    </intermediateCatchEvent>
    <sequenceFlow id="sid-2484E83A-76EF-448C-AEC1-59F6226E9BA1" sourceRef="startEvent1" targetRef="sid-9A9FE798-922E-4FDE-A2E0-AA84BFE9662B"></sequenceFlow>
    <sequenceFlow id="sid-35A93148-5C83-49F6-92D4-77E3A8CB048F" sourceRef="sid-9A9FE798-922E-4FDE-A2E0-AA84BFE9662B" targetRef="sid-F1956F93-FF55-4EF1-B5CC-EC40BEAE60C9"></sequenceFlow>
    <sequenceFlow id="sid-1CF5E93A-4C07-4145-BC76-719A3D3B4B44" sourceRef="sid-9A9FE798-922E-4FDE-A2E0-AA84BFE9662B" targetRef="sid-14E28DE4-7E4C-4F4F-B95B-C080EC3958A9"></sequenceFlow>
    <serviceTask id="service11111-a" name="service01" flowable:class="com.xiuhui.demo.flowable.bean.SingalServiceTask"></serviceTask>
    <serviceTask id="service11222-b" name="service02" flowable:class="com.xiuhui.demo.flowable.bean.TimerServiceTask"></serviceTask>
    <sequenceFlow id="sid-C76F03DC-E583-4025-B78A-A353B0C69590" sourceRef="sid-F1956F93-FF55-4EF1-B5CC-EC40BEAE60C9" targetRef="service11111-a"></sequenceFlow>
    <sequenceFlow id="sid-6066E075-E91C-49E6-BA11-393947AB0AE6" sourceRef="sid-14E28DE4-7E4C-4F4F-B95B-C080EC3958A9" targetRef="service11222-b"></sequenceFlow>
    <exclusiveGateway id="sid-9B404020-87F8-4D86-8E3F-CC05E2DCC27C"></exclusiveGateway>
    <sequenceFlow id="sid-85382D62-E983-4F99-9962-EBA113A9F4E6" sourceRef="service11111-a" targetRef="sid-9B404020-87F8-4D86-8E3F-CC05E2DCC27C"></sequenceFlow>
    <sequenceFlow id="sid-07F21AAE-0CE2-4B51-82B7-F227BF453C79" sourceRef="service11222-b" targetRef="sid-9B404020-87F8-4D86-8E3F-CC05E2DCC27C"></sequenceFlow>
    <endEvent id="sid-1A7A22A6-19EF-438F-B854-7E4BD4AE1066"></endEvent>
    <serviceTask id="service333333-c" name="service03" flowable:class="com.xiuhui.demo.flowable.bean.CommonServiceTask"></serviceTask>
    <sequenceFlow id="sid-E32C0DFD-16C0-4763-A642-43D557E4C53F" sourceRef="sid-9B404020-87F8-4D86-8E3F-CC05E2DCC27C" targetRef="service333333-c"></sequenceFlow>
    <sequenceFlow id="sid-7BEA4E5A-8BDC-4EED-8519-85A6FB733783" sourceRef="service333333-c" targetRef="sid-1A7A22A6-19EF-438F-B854-7E4BD4AE1066"></sequenceFlow>
  </process>
主要言語
Java
スター
9.5k
フォーク
2.9k
平均マージ
7時間 8分
マージ済み PR(30日)
2

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

flowable/flowable-engine のほかの issue

flowable/flowable-engine の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。