Изменения документа Движок cccc1808. ProcessEngine
Редактировал(а) Alexandr Fokin 2026/04/27 13:28
От версии 29.1
отредактировано Alexandr Fokin
на 2026/04/27 13:25
на 2026/04/27 13:25
Изменить комментарий:
Вложение перемещено в xwiki:Проекты и репозитории.Библиотеки.Движок cccc1808\. ProcessEngine.Примеры.WebHome.
К версии 27.15
отредактировано Alexandr Fokin
на 2026/04/12 13:08
на 2026/04/12 13:08
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Вложения (0 изменено, 2 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,12 +1,11 @@ 1 -|(% style="width:132px" %) |(% style="width:1301px" %)((( 2 - |Теги поиска|cccc1808. ProcessEngine, cccc1808.ProcessEngine, Process engine1 +|(% style="width:132px" %)Теги поиска|(% style="width:1301px" %)((( 2 +cccc1808. ProcessEngine, cccc1808.ProcessEngine 3 3 Очередь задач, Система обработки процессов, Движок обработки процессов. 4 4 [[Процесс>>doc:Архитектура и модели.Модели.Процесс.WebHome]] 5 -|Описание|Универсальный движок для выполнения процессов и очередей задач, позволяющий комбинировать несколько подходов к обработке (см особенности). 6 -|Термины|Процесс является единицей исполнения. В реализации может содержать машину состояний. 7 -Система триггеров используется для таймеров и передачи сигналов для процессов (с оптимизацией нагрузки). 8 -|Репозиторий|[[https:~~/~~/github.com/cccc1808/cccc1808.ProcessEngine>>https://github.com/cccc1808/cccc1808.ProcessEngine]] 9 9 ))) 6 +|(% style="width:132px" %) |(% style="width:1301px" %)Универсальный движок для выполнения процессов и очередей задач, позволяющий комбинировать несколько подходов к обработке (см особенности). 7 +|(% style="width:132px" %) |(% style="width:1301px" %)Процесс является единицей исполнения. В реализации может содержать машину состояний. 8 +Система триггеров используется для таймеров и передачи сигналов для процессов (с оптимизацией нагрузки). 10 10 |(% style="width:132px" %)Разветывание|(% style="width:1301px" %)((( 11 11 |(% style="width:150px" %)База данных|(% style="width:1177px" %)((( 12 12 Для надежного хранения данных процессов и триггеров. ... ... @@ -16,15 +16,13 @@ 16 16 17 17 Для текущей реализации в качестве хранилище может выступать БД, поддерживающая: 18 18 19 -* Транзакции: 20 -** Транзакции. 21 -** Savepoint. 18 +* Транзакции: транзакции. 19 +* Транзакции: savepoint. 22 22 (если используются, можно обрабатывать каждый шаг отдельной транзакцией или весь процесс без savepoint изоляции ошибок между шагами). 23 -* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: 24 -** updatelock. 25 -** updatelock skip locked. 21 +* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: updatelock. 22 +* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: updatelock skip locked. 26 26 (частично можно обойтись без него). 27 -* *sharelock24 +* [[Блокировки>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.WebHome]]: sharelock 28 28 (можно обойтись без него без сильного влияния) 29 29 * [[Уровни изоляции>>doc:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.Уровни изоляции | Isolation levels.WebHome]]: работает на read committed, то что нужно блокируется руками. 30 30 * Для некоторых кейсов желательно возможность выполнить [[Upsert>>doc:Разработка.Базы данных.SQL.Сценарии и вопросы.Insert or update\. Upsert.WebHome]] (insert on conflict).
- TransactionOutbox. Sequence.graphml
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +33.6 KB - Содержимое
- Родительский дочерний процесс. Sequence.graphml
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Размер
-
... ... @@ -1,0 +1,1 @@ 1 +33.6 KB - Содержимое
-
... ... @@ -1,0 +1,543 @@ 1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 +<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd"> 3 + <!--Created by yEd 3.23.1--> 4 + <key attr.name="Description" attr.type="string" for="graph" id="d0"/> 5 + <key for="port" id="d1" yfiles.type="portgraphics"/> 6 + <key for="port" id="d2" yfiles.type="portgeometry"/> 7 + <key for="port" id="d3" yfiles.type="portuserdata"/> 8 + <key attr.name="url" attr.type="string" for="node" id="d4"/> 9 + <key attr.name="description" attr.type="string" for="node" id="d5"/> 10 + <key for="node" id="d6" yfiles.type="nodegraphics"/> 11 + <key for="graphml" id="d7" yfiles.type="resources"/> 12 + <key attr.name="url" attr.type="string" for="edge" id="d8"/> 13 + <key attr.name="description" attr.type="string" for="edge" id="d9"/> 14 + <key for="edge" id="d10" yfiles.type="edgegraphics"/> 15 + <graph edgedefault="directed" id="G"> 16 + <data key="d0"/> 17 + <node id="n0"> 18 + <data key="d5"/> 19 + <data key="d6"> 20 + <y:ShapeNode> 21 + <y:Geometry height="30.0" width="240.2240000000017" x="280.9759999999975" y="439.28000000000003"/> 22 + <y:Fill color="#FFCC00" transparent="false"/> 23 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 24 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="234.478515625" x="2.872742187500876" xml:space="preserve" y="5.6494140625">Гарантированное пробудление процесса<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 25 + <y:Shape type="ellipse"/> 26 + </y:ShapeNode> 27 + </data> 28 + </node> 29 + <node id="n1"> 30 + <data key="d5"/> 31 + <data key="d6"> 32 + <y:ShapeNode> 33 + <y:Geometry height="30.0" width="51.75999999999999" x="378.2160000000002" y="102.96000000000016"/> 34 + <y:Fill color="#FFCC00" transparent="false"/> 35 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 36 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="46.80859375" x="2.4757031249999955" xml:space="preserve" y="5.6494140625">Триггер<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 37 + <y:Shape type="roundrectangle"/> 38 + </y:ShapeNode> 39 + </data> 40 + </node> 41 + <node id="n2"> 42 + <data key="d5"/> 43 + <data key="d6"> 44 + <y:ShapeNode> 45 + <y:Geometry height="30.0" width="66.47999999999999" x="31.40000000000012" y="102.96000000000018"/> 46 + <y:Fill color="#FFCC00" transparent="false"/> 47 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 48 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.501953125" x="1.4890234374999807" xml:space="preserve" y="5.6494140625">Отправить<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 49 + <y:Shape type="roundrectangle"/> 50 + </y:ShapeNode> 51 + </data> 52 + </node> 53 + <node id="n3"> 54 + <data key="d5"/> 55 + <data key="d6"> 56 + <y:ShapeNode> 57 + <y:Geometry height="49.20000000000002" width="279.6" x="-75.15999999999988" y="265.2319999999994"/> 58 + <y:Fill color="#FFCC00" transparent="false"/> 59 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 60 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="33.40234375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="272.072265625" x="3.7638671875000114" xml:space="preserve" y="7.898828124999994">Отправка сообщения через TransactionalOutbox 61 +(транзакционная запись в БД)<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 62 + <y:Shape type="ellipse"/> 63 + </y:ShapeNode> 64 + </data> 65 + </node> 66 + <node id="n4"> 67 + <data key="d5"/> 68 + <data key="d6"> 69 + <y:ShapeNode> 70 + <y:Geometry height="30.0" width="146.47999999999996" x="-8.599999999999838" y="355.0480000000008"/> 71 + <y:Fill color="#FFCC00" transparent="false"/> 72 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 73 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="125.0078125" x="10.73609374999998" xml:space="preserve" y="5.6494140625">Отправка triggerEvent<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 74 + <y:Shape type="ellipse"/> 75 + </y:ShapeNode> 76 + </data> 77 + </node> 78 + <node id="n5"> 79 + <data key="d5"/> 80 + <data key="d6"> 81 + <y:ShapeNode> 82 + <y:Geometry height="30.0" width="30.0" x="386.0879999999984" y="351.33600000000155"/> 83 + <y:Fill color="#FFFFFF" transparent="false"/> 84 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 85 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0"> 86 + <y:LabelModel> 87 + <y:SmartNodeLabelModel distance="4.0"/> 88 + </y:LabelModel> 89 + <y:ModelParameter> 90 + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> 91 + </y:ModelParameter> 92 + </y:NodeLabel> 93 + <y:Shape type="ellipse"/> 94 + </y:ShapeNode> 95 + </data> 96 + </node> 97 + <node id="n6"> 98 + <data key="d5"/> 99 + <data key="d6"> 100 + <y:ShapeNode> 101 + <y:Geometry height="30.0" width="122.80000000000007" x="710.2040000000015" y="102.96000000000018"/> 102 + <y:Fill color="#FFCC00" transparent="false"/> 103 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 104 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="88.041015625" x="17.37949218750009" xml:space="preserve" y="5.6494140625">Outbox process<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 105 + <y:Shape type="roundrectangle"/> 106 + </y:ShapeNode> 107 + </data> 108 + </node> 109 + <node id="n7"> 110 + <data key="d5"/> 111 + <data key="d6"> 112 + <y:ShapeNode> 113 + <y:Geometry height="30.0" width="66.47999999999999" x="31.40000000000012" y="709.7220000000023"/> 114 + <y:Fill color="#FFCC00" transparent="false"/> 115 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 116 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.501953125" x="1.489023437500009" xml:space="preserve" y="5.6494140625">Отправить<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 117 + <y:Shape type="roundrectangle"/> 118 + </y:ShapeNode> 119 + </data> 120 + </node> 121 + <node id="n8"> 122 + <data key="d5"/> 123 + <data key="d6"> 124 + <y:ShapeNode> 125 + <y:Geometry height="30.0" width="30.0" x="756.6040000000016" y="439.28000000000003"/> 126 + <y:Fill color="#FFFFFF" transparent="false"/> 127 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 128 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0"> 129 + <y:LabelModel> 130 + <y:SmartNodeLabelModel distance="4.0"/> 131 + </y:LabelModel> 132 + <y:ModelParameter> 133 + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> 134 + </y:ModelParameter> 135 + </y:NodeLabel> 136 + <y:Shape type="ellipse"/> 137 + </y:ShapeNode> 138 + </data> 139 + </node> 140 + <node id="n9"> 141 + <data key="d5"/> 142 + <data key="d6"> 143 + <y:ShapeNode> 144 + <y:Geometry height="30.0" width="210.80000000000007" x="666.2040000000015" y="617.216000000002"/> 145 + <y:Fill color="#FFCC00" transparent="false"/> 146 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 147 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="209.65234375" x="0.573828125000091" xml:space="preserve" y="5.6494140625">Обработка скопившихся сообщений.<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 148 + <y:Shape type="ellipse"/> 149 + </y:ShapeNode> 150 + </data> 151 + </node> 152 + <node id="n10"> 153 + <data key="d5"/> 154 + <data key="d6"> 155 + <y:ShapeNode> 156 + <y:Geometry height="30.0" width="132.80000000000098" x="967.4200000000045" y="99.2480000000009"/> 157 + <y:Fill color="#FFCC00" transparent="false"/> 158 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 159 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="120.09765625" x="6.351171875000546" xml:space="preserve" y="5.6494140625">Страхующий триггер<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 160 + <y:Shape type="roundrectangle"/> 161 + </y:ShapeNode> 162 + </data> 163 + </node> 164 + <node id="n11"> 165 + <data key="d5"/> 166 + <data key="d6"> 167 + <y:ShapeNode> 168 + <y:Geometry height="30.0" width="132.80000000000098" x="967.4200000000045" y="709.7220000000023"/> 169 + <y:Fill color="#FFCC00" transparent="false"/> 170 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 171 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="120.09765625" x="6.351171875000432" xml:space="preserve" y="5.6494140625">Страхующий триггер<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 172 + <y:Shape type="roundrectangle"/> 173 + </y:ShapeNode> 174 + </data> 175 + </node> 176 + <node id="n12"> 177 + <data key="d5"/> 178 + <data key="d6"> 179 + <y:ShapeNode> 180 + <y:Geometry height="90.95999999999992" width="246.68" x="910.4800000000049" y="526.2560000000021"/> 181 + <y:Fill color="#FFCC00" transparent="false"/> 182 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 183 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="48.103515625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="212.65234375" x="17.013828125000032" xml:space="preserve" y="21.428242187500018">Пробуждает родительский процесс. 184 +Но это произойдет позже, 185 +чем это сделал бы основной триггер.<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 186 + <y:Shape type="ellipse"/> 187 + </y:ShapeNode> 188 + </data> 189 + </node> 190 + <node id="n13"> 191 + <data key="d5"/> 192 + <data key="d6"> 193 + <y:ShapeNode> 194 + <y:Geometry height="145.68000000000006" width="374.863999999998" x="846.388000000006" y="329.81372800000196"/> 195 + <y:Fill color="#FFCC00" transparent="false"/> 196 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 197 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="48.103515625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="410.921875" x="-18.028937500001007" xml:space="preserve" y="48.78824218750003">Обнаружил что есть необработанные сообщения, 198 +но transactionanOutbox процесс спит и давно не брался в обработку. 199 +Считает, что были утеряны triggerEvent, поэтому необходимо пробудить<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 200 + <y:Shape type="diamond"/> 201 + </y:ShapeNode> 202 + </data> 203 + </node> 204 + <node id="n14"> 205 + <data key="d5"/> 206 + <data key="d6"> 207 + <y:GenericNode configuration="BevelNode"> 208 + <y:Geometry height="30.0" width="374.863999999998" x="1053.820000000005" y="147.99000000000058"/> 209 + <y:Fill color="#FF9900" transparent="false"/> 210 + <y:BorderStyle hasColor="false" type="line" width="1.0"/> 211 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="33.40234375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="364.603515625" x="5.130242187498993" xml:space="preserve" y="-1.701171875">Запускается периодически и использует более тяжелый запрос. 212 +Проверяет всю таблицу или индекс.<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 213 + </y:GenericNode> 214 + </data> 215 + </node> 216 + <node id="n15"> 217 + <data key="d5"/> 218 + <data key="d6"> 219 + <y:ShapeNode> 220 + <y:Geometry height="30.0" width="30.0" x="756.6040000000016" y="556.7360000000022"/> 221 + <y:Fill color="#FFFFFF" transparent="false"/> 222 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 223 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0"> 224 + <y:LabelModel> 225 + <y:SmartNodeLabelModel distance="4.0"/> 226 + </y:LabelModel> 227 + <y:ModelParameter> 228 + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> 229 + </y:ModelParameter> 230 + </y:NodeLabel> 231 + <y:Shape type="ellipse"/> 232 + </y:ShapeNode> 233 + </data> 234 + </node> 235 + <node id="n16"> 236 + <data key="d5"/> 237 + <data key="d6"> 238 + <y:ShapeNode> 239 + <y:Geometry height="30.0" width="122.80000000000007" x="710.2040000000015" y="744.9220000000023"/> 240 + <y:Fill color="#FFCC00" transparent="false"/> 241 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 242 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="88.041015625" x="17.37949218750009" xml:space="preserve" y="5.6494140625">Outbox process<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 243 + <y:Shape type="roundrectangle"/> 244 + </y:ShapeNode> 245 + </data> 246 + </node> 247 + <node id="n17"> 248 + <data key="d5"/> 249 + <data key="d6"> 250 + <y:ShapeNode> 251 + <y:Geometry height="30.0" width="51.75999999999999" x="375.2079999999984" y="709.7220000000023"/> 252 + <y:Fill color="#FFCC00" transparent="false"/> 253 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 254 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="46.80859375" x="2.4757031249999955" xml:space="preserve" y="5.6494140625">Триггер<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 255 + <y:Shape type="roundrectangle"/> 256 + </y:ShapeNode> 257 + </data> 258 + </node> 259 + <node id="n18"> 260 + <data key="d5"/> 261 + <data key="d6"> 262 + <y:ShapeNode> 263 + <y:Geometry height="44.07999999999993" width="463.28" x="169.4479999999984" y="523.489000000002"/> 264 + <y:Fill color="#FFCC00" transparent="false"/> 265 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 266 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="33.40234375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="426.173828125" x="18.553085937499986" xml:space="preserve" y="5.338828124999964">Выставляет небольшую задержку, чтобы если поступит новое сообщение, 267 +то воркер и так скорее всего выполняется и смысла запроса нет.<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 268 + <y:Shape type="ellipse"/> 269 + </y:ShapeNode> 270 + </data> 271 + </node> 272 + <node id="n19"> 273 + <data key="d5"/> 274 + <data key="d6"> 275 + <y:ShapeNode> 276 + <y:Geometry height="30.0" width="210.80000000000007" x="666.2040000000017" y="677.216000000002"/> 277 + <y:Fill color="#FFCC00" transparent="false"/> 278 + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> 279 + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="121.123046875" x="44.83847656249998" xml:space="preserve" y="5.6494140625">Засыпание процесса<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> 280 + <y:Shape type="ellipse"/> 281 + </y:ShapeNode> 282 + </data> 283 + </node> 284 + <edge id="e0" source="n4" target="n5"> 285 + <data key="d9"/> 286 + <data key="d10"> 287 + <y:PolyLineEdge> 288 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 289 + <y:LineStyle color="#000000" type="line" width="1.0"/> 290 + <y:Arrows source="none" target="standard"/> 291 + <y:BendStyle smoothed="false"/> 292 + </y:PolyLineEdge> 293 + </data> 294 + </edge> 295 + <edge id="e1" source="n2" target="n3"> 296 + <data key="d9"/> 297 + <data key="d10"> 298 + <y:PolyLineEdge> 299 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 300 + <y:LineStyle color="#000000" type="line" width="1.0"/> 301 + <y:Arrows source="none" target="standard"/> 302 + <y:BendStyle smoothed="false"/> 303 + </y:PolyLineEdge> 304 + </data> 305 + </edge> 306 + <edge id="e2" source="n3" target="n4"> 307 + <data key="d9"/> 308 + <data key="d10"> 309 + <y:PolyLineEdge> 310 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 311 + <y:LineStyle color="#000000" type="line" width="1.0"/> 312 + <y:Arrows source="none" target="standard"/> 313 + <y:BendStyle smoothed="false"/> 314 + </y:PolyLineEdge> 315 + </data> 316 + </edge> 317 + <edge id="e3" source="n4" target="n7"> 318 + <data key="d9"/> 319 + <data key="d10"> 320 + <y:PolyLineEdge> 321 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 322 + <y:LineStyle color="#000000" type="line" width="1.0"/> 323 + <y:Arrows source="none" target="standard"/> 324 + <y:BendStyle smoothed="false"/> 325 + </y:PolyLineEdge> 326 + </data> 327 + </edge> 328 + <edge id="e4" source="n1" target="n5"> 329 + <data key="d9"/> 330 + <data key="d10"> 331 + <y:PolyLineEdge> 332 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 333 + <y:LineStyle color="#000000" type="dashed" width="1.0"/> 334 + <y:Arrows source="none" target="standard"/> 335 + <y:BendStyle smoothed="false"/> 336 + </y:PolyLineEdge> 337 + </data> 338 + </edge> 339 + <edge id="e5" source="n0" target="n8"> 340 + <data key="d9"/> 341 + <data key="d10"> 342 + <y:PolyLineEdge> 343 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 344 + <y:LineStyle color="#000000" type="line" width="1.0"/> 345 + <y:Arrows source="none" target="standard"/> 346 + <y:BendStyle smoothed="false"/> 347 + </y:PolyLineEdge> 348 + </data> 349 + </edge> 350 + <edge id="e6" source="n6" target="n8"> 351 + <data key="d9"/> 352 + <data key="d10"> 353 + <y:PolyLineEdge> 354 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 355 + <y:LineStyle color="#000000" type="dashed" width="1.0"/> 356 + <y:Arrows source="none" target="standard"/> 357 + <y:BendStyle smoothed="false"/> 358 + </y:PolyLineEdge> 359 + </data> 360 + </edge> 361 + <edge id="e7" source="n13" target="n12"> 362 + <data key="d9"/> 363 + <data key="d10"> 364 + <y:PolyLineEdge> 365 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> 366 + <y:Point x="1238.3762880000015" y="397.053728000002"/> 367 + <y:Point x="1238.3762880000015" y="571.7360000000022"/> 368 + </y:Path> 369 + <y:LineStyle color="#000000" type="line" width="1.0"/> 370 + <y:Arrows source="none" target="standard"/> 371 + <y:BendStyle smoothed="false"/> 372 + </y:PolyLineEdge> 373 + </data> 374 + </edge> 375 + <edge id="e8" source="n12" target="n11"> 376 + <data key="d9"/> 377 + <data key="d10"> 378 + <y:PolyLineEdge> 379 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 380 + <y:LineStyle color="#000000" type="dashed" width="1.0"/> 381 + <y:Arrows source="none" target="standard"/> 382 + <y:BendStyle smoothed="false"/> 383 + </y:PolyLineEdge> 384 + </data> 385 + </edge> 386 + <edge id="e9" source="n13" target="n12"> 387 + <data key="d9"/> 388 + <data key="d10"> 389 + <y:PolyLineEdge> 390 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 391 + <y:LineStyle color="#000000" type="dashed" width="1.0"/> 392 + <y:Arrows source="none" target="standard"/> 393 + <y:BendStyle smoothed="false"/> 394 + </y:PolyLineEdge> 395 + </data> 396 + </edge> 397 + <edge id="e10" source="n10" target="n13"> 398 + <data key="d9"/> 399 + <data key="d10"> 400 + <y:PolyLineEdge> 401 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 402 + <y:LineStyle color="#000000" type="line" width="1.0"/> 403 + <y:Arrows source="none" target="standard"/> 404 + <y:BendStyle smoothed="false"/> 405 + </y:PolyLineEdge> 406 + </data> 407 + </edge> 408 + <edge id="e11" source="n12" target="n15"> 409 + <data key="d9"/> 410 + <data key="d10"> 411 + <y:PolyLineEdge> 412 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 413 + <y:LineStyle color="#000000" type="line" width="1.0"/> 414 + <y:Arrows source="none" target="standard"/> 415 + <y:BendStyle smoothed="false"/> 416 + </y:PolyLineEdge> 417 + </data> 418 + </edge> 419 + <edge id="e12" source="n8" target="n15"> 420 + <data key="d9"/> 421 + <data key="d10"> 422 + <y:PolyLineEdge> 423 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 424 + <y:LineStyle color="#000000" type="line" width="1.0"/> 425 + <y:Arrows source="none" target="standard"/> 426 + <y:BendStyle smoothed="false"/> 427 + </y:PolyLineEdge> 428 + </data> 429 + </edge> 430 + <edge id="e13" source="n19" target="n16"> 431 + <data key="d9"/> 432 + <data key="d10"> 433 + <y:PolyLineEdge> 434 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 435 + <y:LineStyle color="#000000" type="dashed" width="1.0"/> 436 + <y:Arrows source="none" target="standard"/> 437 + <y:BendStyle smoothed="false"/> 438 + </y:PolyLineEdge> 439 + </data> 440 + </edge> 441 + <edge id="e14" source="n15" target="n9"> 442 + <data key="d9"/> 443 + <data key="d10"> 444 + <y:PolyLineEdge> 445 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 446 + <y:LineStyle color="#000000" type="line" width="1.0"/> 447 + <y:Arrows source="none" target="standard"/> 448 + <y:BendStyle smoothed="false"/> 449 + </y:PolyLineEdge> 450 + </data> 451 + </edge> 452 + <edge id="e15" source="n12" target="n13"> 453 + <data key="d9"/> 454 + <data key="d10"> 455 + <y:PolyLineEdge> 456 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> 457 + <y:Point x="806.244000000001" y="545.1420000000005"/> 458 + <y:Point x="806.244000000001" y="402.653728000002"/> 459 + </y:Path> 460 + <y:LineStyle color="#000000" type="line" width="1.0"/> 461 + <y:Arrows source="none" target="standard"/> 462 + <y:BendStyle smoothed="false"/> 463 + </y:PolyLineEdge> 464 + </data> 465 + </edge> 466 + <edge id="e16" source="n18" target="n17"> 467 + <data key="d9"/> 468 + <data key="d10"> 469 + <y:PolyLineEdge> 470 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 471 + <y:LineStyle color="#000000" type="dashed" width="1.0"/> 472 + <y:Arrows source="none" target="standard"/> 473 + <y:BendStyle smoothed="false"/> 474 + </y:PolyLineEdge> 475 + </data> 476 + </edge> 477 + <edge id="e17" source="n5" target="n0"> 478 + <data key="d9"/> 479 + <data key="d10"> 480 + <y:PolyLineEdge> 481 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 482 + <y:LineStyle color="#000000" type="line" width="1.0"/> 483 + <y:Arrows source="none" target="standard"/> 484 + <y:BendStyle smoothed="false"/> 485 + </y:PolyLineEdge> 486 + </data> 487 + </edge> 488 + <edge id="e18" source="n18" target="n5"> 489 + <data key="d9"/> 490 + <data key="d10"> 491 + <y:PolyLineEdge> 492 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> 493 + <y:Point x="142.1920000000003" y="545.529000000002"/> 494 + <y:Point x="142.1920000000003" y="391.66200000000015"/> 495 + </y:Path> 496 + <y:LineStyle color="#000000" type="line" width="1.0"/> 497 + <y:Arrows source="none" target="standard"/> 498 + <y:BendStyle smoothed="false"/> 499 + </y:PolyLineEdge> 500 + </data> 501 + </edge> 502 + <edge id="e19" source="n0" target="n18"> 503 + <data key="d9"/> 504 + <data key="d10"> 505 + <y:PolyLineEdge> 506 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 507 + <y:LineStyle color="#000000" type="line" width="1.0"/> 508 + <y:Arrows source="none" target="standard"/> 509 + <y:BendStyle smoothed="false"/> 510 + </y:PolyLineEdge> 511 + </data> 512 + </edge> 513 + <edge id="e20" source="n9" target="n19"> 514 + <data key="d9"/> 515 + <data key="d10"> 516 + <y:PolyLineEdge> 517 + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> 518 + <y:LineStyle color="#000000" type="line" width="1.0"/> 519 + <y:Arrows source="none" target="standard"/> 520 + <y:BendStyle smoothed="false"/> 521 + </y:PolyLineEdge> 522 + </data> 523 + </edge> 524 + <edge id="e21" source="n19" target="n8"> 525 + <data key="d9"/> 526 + <data key="d10"> 527 + <y:PolyLineEdge> 528 + <y:Path sx="-104.15249999999969" sy="0.0" tx="0.0" ty="0.0"> 529 + <y:Point x="646.651500000002" y="692.216000000002"/> 530 + <y:Point x="646.651500000002" y="470.7595000000003"/> 531 + </y:Path> 532 + <y:LineStyle color="#000000" type="line" width="1.0"/> 533 + <y:Arrows source="none" target="standard"/> 534 + <y:BendStyle smoothed="false"/> 535 + </y:PolyLineEdge> 536 + </data> 537 + </edge> 538 + </graph> 539 + <data key="d7"> 540 + <y:Resources/> 541 + </data> 542 +</graphml> 543 +