Files
progcode/web/public/assets/editorial/2020/background-job-diagnosis-2020.svg
T
huncode 406e60bf44
Build and deploy / deploy (push) Successful in 13s
revise May 2020 background job articles
2026-07-31 11:27:15 +03:00

54 lines
3.7 KiB
XML

<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>