This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 1210" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Маршрут диагностики фоновой задачи</title>
|
||||
<desc id="desc">Вертикальная схема проводит расследование по одному jobId через запись задачи, outbox и публикацию, журнал worker, сохранённый результат либо карантинную очередь.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 12 12" refX="6" refY="6" markerWidth="10" markerHeight="10" orient="auto-start-reverse"><path d="M 1 1 L 11 6 L 1 11 z" fill="#516274" /></marker>
|
||||
<style>
|
||||
.title { fill: #182230; font: 700 34px system-ui, -apple-system, sans-serif; }
|
||||
.lead { fill: #516274; font: 400 22px system-ui, -apple-system, sans-serif; }
|
||||
.number { fill: #ffffff; font: 700 25px system-ui, -apple-system, sans-serif; }
|
||||
.step { fill: #182230; font: 700 28px system-ui, -apple-system, sans-serif; }
|
||||
.copy { fill: #354458; font: 400 23px system-ui, -apple-system, sans-serif; }
|
||||
.small { fill: #516274; font: 400 21px system-ui, -apple-system, sans-serif; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="720" height="1210" fill="#f6f8fb" rx="28" />
|
||||
<text class="title" x="50" y="72">Диагностика по jobId</text>
|
||||
<text class="lead" x="50" y="108">Не перезапускать effect, пока не известна граница</text>
|
||||
|
||||
<rect x="48" y="152" width="624" height="142" rx="22" fill="#e7f0ff" stroke="#4a78bd" stroke-width="3" />
|
||||
<circle cx="100" cy="214" r="30" fill="#3167b1" />
|
||||
<text class="number" x="93" y="223">1</text>
|
||||
<text class="step" x="158" y="206">Запись задачи</text>
|
||||
<text class="copy" x="158" y="247">state, attempt, lastError, resultKey</text>
|
||||
<line x1="360" y1="296" x2="360" y2="344" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="360" width="624" height="142" rx="22" fill="#eef3f7" stroke="#738195" stroke-width="3" />
|
||||
<circle cx="100" cy="422" r="30" fill="#516274" />
|
||||
<text class="number" x="92" y="431">2</text>
|
||||
<text class="step" x="158" y="414">Outbox и публикация</text>
|
||||
<text class="copy" x="158" y="455">Есть ли message до worker?</text>
|
||||
<line x1="360" y1="504" x2="360" y2="552" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="568" width="624" height="154" rx="22" fill="#fff4d7" stroke="#c68819" stroke-width="3" />
|
||||
<circle cx="100" cy="636" r="30" fill="#b47700" />
|
||||
<text class="number" x="92" y="645">3</text>
|
||||
<text class="step" x="158" y="625">Журнал worker</text>
|
||||
<text class="copy" x="158" y="666">received → result → ack</text>
|
||||
<text class="small" x="158" y="697">Сравнить порядок и attempt</text>
|
||||
<line x1="360" y1="724" x2="360" y2="772" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="788" width="624" height="142" rx="22" fill="#e4f6ea" stroke="#25855a" stroke-width="3" />
|
||||
<circle cx="100" cy="850" r="30" fill="#16764c" />
|
||||
<text class="number" x="92" y="859">4</text>
|
||||
<text class="step" x="158" y="842">resultKey найден</text>
|
||||
<text class="copy" x="158" y="883">Повторный delivery только ACK</text>
|
||||
<line x1="360" y1="932" x2="360" y2="980" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="996" width="624" height="142" rx="22" fill="#fde9ea" stroke="#b4434b" stroke-width="3" />
|
||||
<circle cx="100" cy="1058" r="30" fill="#a6353d" />
|
||||
<text class="number" x="92" y="1067">5</text>
|
||||
<text class="step" x="158" y="1050">Постоянная ошибка</text>
|
||||
<text class="copy" x="158" y="1091">quarantined + DLX-разбор</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,58 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 1320" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Жизненный цикл фоновой задачи</title>
|
||||
<desc id="desc">Вертикальная схема показывает запись задачи и outbox, публикацию, обработку worker-ом, сохранение результата перед ack, повтор при временной ошибке и карантин постоянной ошибки.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 12 12" refX="6" refY="6" markerWidth="10" markerHeight="10" orient="auto-start-reverse"><path d="M 1 1 L 11 6 L 1 11 z" fill="#516274" /></marker>
|
||||
<style>
|
||||
.title { fill: #182230; font: 700 34px system-ui, -apple-system, sans-serif; }
|
||||
.lead { fill: #516274; font: 400 22px system-ui, -apple-system, sans-serif; }
|
||||
.step { fill: #182230; font: 700 27px system-ui, -apple-system, sans-serif; }
|
||||
.copy { fill: #354458; font: 400 23px system-ui, -apple-system, sans-serif; }
|
||||
.tag { fill: #ffffff; font: 700 22px system-ui, -apple-system, sans-serif; }
|
||||
.small { fill: #516274; font: 400 21px system-ui, -apple-system, sans-serif; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="720" height="1320" fill="#f6f8fb" rx="28" />
|
||||
<text class="title" x="52" y="72">Жизненный цикл одной задачи</text>
|
||||
<text class="lead" x="52" y="108">jobId связывает запись, delivery и результат</text>
|
||||
|
||||
<rect x="48" y="148" width="624" height="142" rx="22" fill="#e7f0ff" stroke="#4a78bd" stroke-width="3" />
|
||||
<rect x="72" y="176" width="88" height="42" rx="21" fill="#3167b1" />
|
||||
<text class="tag" x="94" y="205">HTTP</text>
|
||||
<text class="step" x="184" y="203">Записать job и outbox</text>
|
||||
<text class="copy" x="184" y="244">Ответ: принято, jobId известен</text>
|
||||
<line x1="360" y1="292" x2="360" y2="340" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="356" width="624" height="142" rx="22" fill="#eef3f7" stroke="#738195" stroke-width="3" />
|
||||
<rect x="72" y="384" width="132" height="42" rx="21" fill="#516274" />
|
||||
<text class="tag" x="91" y="413">DISPATCH</text>
|
||||
<text class="step" x="226" y="411">Опубликовать jobId</text>
|
||||
<text class="copy" x="226" y="452">Только затем отметить outbox</text>
|
||||
<line x1="360" y1="500" x2="360" y2="548" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="564" width="624" height="142" rx="22" fill="#fff4d7" stroke="#c68819" stroke-width="3" />
|
||||
<rect x="72" y="592" width="112" height="42" rx="21" fill="#b47700" />
|
||||
<text class="tag" x="92" y="621">WORKER</text>
|
||||
<text class="step" x="210" y="619">Прочитать job по jobId</text>
|
||||
<text class="copy" x="210" y="660">Delivery ещё не подтверждён</text>
|
||||
<line x1="360" y1="708" x2="360" y2="756" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="772" width="624" height="156" rx="22" fill="#e4f6ea" stroke="#25855a" stroke-width="3" />
|
||||
<rect x="72" y="800" width="102" height="42" rx="21" fill="#16764c" />
|
||||
<text class="tag" x="97" y="829">УСПЕХ</text>
|
||||
<text class="step" x="200" y="827">Сохранить result + succeeded</text>
|
||||
<text class="copy" x="200" y="868">Только после этого отправить ACK</text>
|
||||
<text class="small" x="200" y="902">Повтор увидит terminal state</text>
|
||||
|
||||
<line x1="360" y1="930" x2="360" y2="978" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
<rect x="48" y="994" width="624" height="126" rx="22" fill="#fff1df" stroke="#c97918" stroke-width="3" />
|
||||
<rect x="72" y="1023" width="102" height="42" rx="21" fill="#b76500" />
|
||||
<text class="tag" x="95" y="1052">RETRY</text>
|
||||
<text class="step" x="201" y="1050">Временная ошибка: retry_wait</text>
|
||||
<text class="copy" x="201" y="1090">Ограниченный повтор вернётся к worker</text>
|
||||
|
||||
<line x1="360" y1="1122" x2="360" y2="1170" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
<rect x="48" y="1186" width="624" height="98" rx="22" fill="#fde9ea" stroke="#b4434b" stroke-width="3" />
|
||||
<text class="step" x="76" y="1228">Постоянная ошибка или лимит</text>
|
||||
<text class="copy" x="76" y="1265">→ quarantine / DLX</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,55 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 1260" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Граница повторов и подтверждения фоновой задачи</title>
|
||||
<desc id="desc">Вертикальная схема показывает, что worker сохраняет результат до подтверждения доставки, ограничивает временный повтор и отправляет постоянную ошибку в карантин без бесконечного requeue.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 12 12" refX="6" refY="6" markerWidth="10" markerHeight="10" orient="auto-start-reverse"><path d="M 1 1 L 11 6 L 1 11 z" fill="#516274" /></marker>
|
||||
<style>
|
||||
.title { fill: #182230; font: 700 34px system-ui, -apple-system, sans-serif; }
|
||||
.lead { fill: #516274; font: 400 22px system-ui, -apple-system, sans-serif; }
|
||||
.step { fill: #182230; font: 700 27px system-ui, -apple-system, sans-serif; }
|
||||
.copy { fill: #354458; font: 400 23px system-ui, -apple-system, sans-serif; }
|
||||
.tag { fill: #ffffff; font: 700 22px system-ui, -apple-system, sans-serif; }
|
||||
.small { fill: #516274; font: 400 21px system-ui, -apple-system, sans-serif; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="720" height="1260" fill="#f6f8fb" rx="28" />
|
||||
<text class="title" x="50" y="72">Граница retry и ack</text>
|
||||
<text class="lead" x="50" y="108">delivery может повториться; jobId остаётся тем же</text>
|
||||
|
||||
<rect x="48" y="150" width="624" height="132" rx="22" fill="#e7f0ff" stroke="#4a78bd" stroke-width="3" />
|
||||
<rect x="72" y="178" width="112" height="42" rx="21" fill="#3167b1" />
|
||||
<text class="tag" x="92" y="207">DELIVERY</text>
|
||||
<text class="step" x="208" y="205">Получить tag и jobId</text>
|
||||
<text class="copy" x="208" y="246">Ack ещё не отправлен</text>
|
||||
<line x1="360" y1="284" x2="360" y2="332" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="348" width="624" height="146" rx="22" fill="#fff4d7" stroke="#c68819" stroke-width="3" />
|
||||
<rect x="72" y="376" width="116" height="42" rx="21" fill="#b47700" />
|
||||
<text class="tag" x="92" y="405">CHECK</text>
|
||||
<text class="step" x="212" y="403">Terminal state уже есть?</text>
|
||||
<text class="copy" x="212" y="444">Да: не делать effect второй раз</text>
|
||||
<text class="small" x="212" y="475">Нет: начать одну попытку</text>
|
||||
<line x1="360" y1="496" x2="360" y2="544" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="560" width="624" height="148" rx="22" fill="#e4f6ea" stroke="#25855a" stroke-width="3" />
|
||||
<rect x="72" y="588" width="104" height="42" rx="21" fill="#16764c" />
|
||||
<text class="tag" x="95" y="617">RESULT</text>
|
||||
<text class="step" x="201" y="615">resultKey + succeeded сохранены</text>
|
||||
<text class="copy" x="201" y="656">Только затем ACK этого tag</text>
|
||||
<text class="small" x="201" y="687">Порядок защищает от ранней потери</text>
|
||||
|
||||
<line x1="360" y1="710" x2="360" y2="758" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
<rect x="48" y="774" width="624" height="140" rx="22" fill="#fff1df" stroke="#c97918" stroke-width="3" />
|
||||
<rect x="72" y="802" width="98" height="42" rx="21" fill="#b76500" />
|
||||
<text class="tag" x="94" y="831">RETRY</text>
|
||||
<text class="step" x="196" y="829">Временная ошибка, attempt < 3</text>
|
||||
<text class="copy" x="196" y="870">retry_wait → задержанный повтор</text>
|
||||
<line x1="360" y1="916" x2="360" y2="964" stroke="#516274" stroke-width="5" marker-end="url(#arrow)" />
|
||||
|
||||
<rect x="48" y="980" width="624" height="154" rx="22" fill="#fde9ea" stroke="#b4434b" stroke-width="3" />
|
||||
<rect x="72" y="1008" width="156" height="42" rx="21" fill="#a6353d" />
|
||||
<text class="tag" x="110" y="1037">STOP</text>
|
||||
<text class="step" x="251" y="1035">Невалидно или лимит</text>
|
||||
<text class="copy" x="251" y="1076">quarantined → nack без requeue</text>
|
||||
<text class="small" x="251" y="1107">Дальше отдельный DLX-разбор</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
Reference in New Issue
Block a user