365 решенийSmittMediaGroup · задача → действия → решениевсе демо →
№ 62026-09-07надёжность

Проверка отвечала «всё в порядке», когда ничего не работало

Ночная смена рухнула целиком из-за одного зависшего набора картинок, а сторож рапортовал, что генератор жив.

1Задача

В проекте, где по ночам печатаются картинки для страниц, смена в половине второго ночи не сделала ничего: один набор завис, программа получила ошибку ожидания — и на этом остановилась вся работа.

Хуже другое. Перед печатью смена спрашивала у генератора, жив ли он, и получала «ок». Генератор действительно отвечал на служебный запрос — но картинок при этом не отдавал.

Полчаса ушло впустую, и никто об этом не узнал бы до утра.

2Действия

Разобрали три отдельные ошибки.

Первая: зависание одного набора считалось концом смены. Сделали так, чтобы это был пропуск одного набора, а не остановка всего.

Вторая: если зависли два набора подряд — смена останавливается сама и освобождает видеокарту, а не занимает её до утра.

Третья, главная: проверка «жив ли генератор» смотрела на служебный ответ, который приходит «ок» даже у неработающего генератора. Заменили её на честную: перед печатью генератор должен нарисовать крошечный пробный кадр. Не нарисовал — значит не жив, и смена это знает сразу.

3Решение

Следующей ночью смена отработала полностью: за неё вышло двадцать четыре новых страницы, генератор ни разу не подвесил работу.

Правило, которое стоит переносить на любые проверки: спрашивайте не «ты жив?», а «сделай маленькую настоящую работу». Первое отвечают все, второе — только работающие.

← все решения