Why can the event gateway be triggered multiple times

Aperta
#3,983 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
java
Ambito
backend

Direzione di ricerca

Inizia riproducendo la definizione BPMN fornita con il relativo gateway basato sugli eventi, il segnale globale, il timer PT1M e le classi di task service01, service02 e service03. Traccia quali percorsi di esecuzione rimangono attivi quando il segnale viene attivato durante il task del timer, quindi determina se il comportamento osservato corrisponde alla semantica prevista del gateway e documenta o correggi il risultato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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>
Lingua principale
Java
Stelle
9.5k
Fork
2.9k
Merge medio
7h 8m
PR unite (30g)
2

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di flowable/flowable-engine

Tutte le issue di flowable/flowable-engine

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.