Сторож бюджета сработал ровно так, как я его написал. Поэтому за сутки ушло 225 евро при жёстком пороге 150

anhel1 только что Сторож бюджета сработал ровно так, как я его написал. Поэтому за сутки ушло 225 евро при жёстком пороге 150 Средний 8 мин 0 Системное администрирование * DevOps * Node.JS * Ретроспектива Из песочницы...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: anhel1 только что Сторож бюджета сработал ровно так, как я его написал. Поэтому за сутки ушло 225 евро при жёстком пороге 150 Средний 8 мин 0 Системное администрирование * DevOps * Node. JS * Ретроспектива Из песочницы Двадцать пятого июня мой сторож бюджета отработал ровно так, как я его написал.
И именно поэтому за день ушло 224,98 евро при жёстком пороге в 150. 98 EUR (ad-periods today) | soft 120 hard 150 состояние сохранено {"date":"2026-06-25","metric":"spent_v3","baseline":null, "alertedSoft":true,"alertedHard":true,"authDead":false} Читается эта строка неприятно. alertedSoft: true и alertedHard: true означают, что оба уведомления ушли.
Технические детали
authDead: false означает, что связь с рекламным кабинетом была живая, то есть остановить кампании технически было можно в любую секунду. Система знала о проблеме, имела рычаг и не дёрнула его, потому что я её такой написал. Дальше по порядку: что за система, что случилось в тот вечер на самом деле, почему два порога оказались одним уровнем защиты и как я это переделал.
Контекст: что вообще крутитсяЯ веду рекламу в Telegram Ads для проекта с мебелью из Китая. Кабинет большой, объявлений в нём около девятнадцати тысяч, руками там делать нечего. Поверх него у меня стоит своя обвязка на Node: набор .
mjs-скриптов на маленьком VPS, лежат в /opt/tgbooster-api, состояние и логи в /var/log/tgbooster/. Запускаются частью по cron, частью руками через ssh. Скрипты примерно такие: степпер, который двигает ставки по правилам; refresh-пилот, который перезапускает выгоревшие креативы по отобранным каналам; сборщик статистики; и сторож расходов, spend-guard.
Отраслевые последствия
mjs, который раз в N минут спрашивает у кабинета сумму за сегодня и сравнивает с порогами. Сторож был написан примерно так (упростил до сути, убрал ретраи и разбор ошибок):// spend-guard. mjs, первая версия const SOFT = Number(process.
120) const HARD = Number(process. 150) const STATE = '/var/log/tgbooster/spend-guard. json' const today = new Date().
slice(0, 10) let st = readState() if (st. == today) st = { date: today, alertedSoft: false, alertedHard: false } const spent = await getSpentToday() // сумма по ad-periods за сегодня console. toISOString()} | сегодня ${spent} EUR | soft ${SOFT} hard ${HARD}`) if (spent >= HARD && !
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.






