67195f0bf8
Сторожа уборки записей телефонных разговоров запускал только человек, который про них помнил. Уборка могла умереть молча, и голоса чужих людей копились бы месяцами при обещанном сроке хранения. Теперь машина раз в сутки гоняет своих сторожей сама и стучится в портал с итогом. Портал хранит итог вместе с ЕГО СОБСТВЕННОЙ датой и шлёт письмо, когда итог красный ИЛИ протух. Зелёный итог недельной давности хуже красного сегодняшнего, поэтому возраст проверяется всегда. Решение владельца Р116: стучится машина, портал на машину не ходит — ключа от машины с голосами живых людей у боевого портала быть не должно. Решение владельца Р117: адрес письма из настройки MONITORING_ALERT_EMAIL, а не вписанный в код. На машине - суточный обход и его расписание, 05:20 МСК, под flock, от ubuntu - машинная копия 12 эталонов: своего ssh-ключа у машины нет и не будет - у сторожей появилась вторая створка двери LENA_MESTNAYA=1 — работа без ssh В портале - приём итога: подпись тела, без слова в адресе. Адреса текут в журналы nginx - ежедневная проверка свежести и красноты, письмо только когда плохо - итог лежит в scheduler_heartbeats, схема базы не тронута - сама проверка записана в EXPECTED_INTERVALS: присмотр без присмотра не жил бы Сторож нового обхода ходит с рабочего места по ssh и сверяет машинную копию с хранилищем побайтово — обход на машине сравнил бы копию сам с собой. Попутно закрыто: копия моста и журнал обхода стали новыми местами, где ложится похожее на речь. Разобраны поимённо, журнал обнуляется каждым прогоном. Замеры: сторожа 26/46/27 не изменились, обход 2,2 с под нагрузкой nice, проверок в портале 21 из 21, полный прогон 5161 при одной чужой красной. Три ножа показаны красными; один мой сторож при этом оказался ложно зелёным и переписан. Не выкачено: портальная половина не на бою, дорога с машины не настроена. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>