Обработка на Инфостарте
Отложенное обновление идёт который день: когда закончится и что держит
После большого обновления типовой отложенные обработчики могут идти сутками, а штатная форма показывает только "Выполнено: N из M". Обработка за долю секунды отвечает одной строкой: идёт и закончится около такого-то часа или стоит, и вот обработчик, который держит.
Обработка продаётся на Инфостарте за 10 SM, код открыт. Внешняя обработка на управляемых формах, только читает. Нужен регистр "Обработчики обновления" из свежих версий БСП 3.1, проверена на УТ 11.5.22.
Вопрос "ждать или разбираться" встаёт у каждого, кто переносил базу на новую редакцию. На форуме Инфостарта есть тема, где база на 450 ГБ обновлялась четырнадцатый день и прошла процентов семьдесят, и автор так и не понял, сломалось ли что-то. Штатная форма "Результаты обновления программы" и отчёт БСП "Прогресс отложенного обновления" дают число выполненных обработчиков, процент и остаток в объектах. Времени окончания и названного виновника там нет.
При этом всё нужное для ответа БСП 3.1 уже хранит сама: почасовую историю обработанных объектов, время завершения каждого обработчика, число попыток и текст последней ошибки. Остаток лежит в таблицах изменений плана обмена "Обновление информационной базы". Не хватает только сложить это вместе и поделить, и обработка делает именно это.
Скорость она меряет двумя мерами: объектами и завершёнными обработчиками за последний час. Одной меры мало. На стенде остаток в объектах стоял на месте, хотя обновление шло, потому что последовательные обработчики своих объектов в очереди не имеют и выбирают данные сами. По объектам выходило "стоит", по обработчикам "идёт". В прогноз берётся более поздняя из двух дат.
Что видно в форме
Строка вердикта
Зелёная "идёт, закончится около ...", жёлтая с предупреждением, красная "стоит" с причиной. Серая, если обновление завершено или в конфигурации нет нужного механизма.
Сводка очереди
Сколько обработчиков всего, выполнено, в работе, с ошибкой и ждут своей очереди. Остаток в объектах, обе скорости в час и прогноз окончания.
Таблица обработчиков с оценкой
Колонка "Оценка" красится: держит, внимание, в порядке, ждёт. Двойной клик по строке открывает разбор выбранного обработчика.
Разбор виновника
Попытки, полный текст последней ошибки, записи журнала регистрации по нему с подсчётом одинаковых причин, признак конфликта блокировок и самые долгие сеансы.
Отчёт и Markdown для нейросети
Текст для администратора копируется целиком. Выгрузка собирает вердикт, таблицы, ошибки и журнал в один файл без имён пользователей, паролей и строки соединения.
Четыре проверки "сломалось или долго"
Проверки идут по порядку, и вердикт ставит первая сработавшая. Если не сработала ни одна, обновление просто идёт, и обработка считает время окончания.
| Проверка | Что значит, если сработала |
|---|---|
| Задание не запускается | Регламентное задание отложенного обновления выключено или у базы стоит флаг блокировки регламентных заданий в консоли серверов 1С. Очередь стоит целиком. |
| Попытки кончились | Обработчик исчерпал попытки, и БСП его больше не запустит. Без вмешательства администратора обновление не закончится. |
| Ошибка с повтором | Обработчик упал, но попытки ещё есть, и БСП повторит его позже. Пока это жёлтое предупреждение, причину видно в журнале. |
| Час без движения | За последний час не обработано ни одного объекта и не завершился ни один обработчик. Обработка ищет подозреваемого среди тех, кто в работе. |
Что показал прогон на настоящей очереди
Копия базы УТ 11.5.22, около 20 ГБ, БСП 3.1.11, платформа 8.3.27, клиент-серверный вариант. Отложенное обновление перезапущено штатным методом БСП: 215 настоящих обработчиков типовой, 207 параллельных и 8 последовательных. Замеры каждые две минуты, каждый вердикт сверен с журналом регистрации, константами БСП и флагом кластера.
| Показатель | Значение | Как надо | Вердикт | Что это значит |
|---|---|---|---|---|
| Прогноз за два часа до конца | ошибся на 5 минут | - | норма | снят в 15:06, говорил "около 17:00", очередь закончилась в 17:05 |
| Прогноз за три часа до конца | ошибся на 45 минут | - | инфо | снят в 14:01; первый прогноз, в 13:10, ошибся на 25 минут |
| Затор 13:20-13:33, ни один обработчик не завершился | прогноз уехал на 19:50 | - | внимание | пока ничего не завершается, конец честно отодвигается; к 14:00 вернулся к 17:50-18:00 |
| Задание запрещено в кластере | красный, причина названа | красный | норма | вердикт сверен с флагом блокировки регламентных заданий |
| Обработчик уронен блокировкой, первый запуск | жёлтый, "БСП повторит (2 из 3)" | жёлтый | норма | 38 элементов по 20 секунд ожидания, запуск занял 13 минут; в журнале 39 предупреждений с одной корневой причиной |
| Тот же обработчик, второй запуск | красный, попытки кончились | красный | норма | 4 попытки при пределе 3; в регистре БСП записала "зацикливание", обработка показала настоящую причину из журнала: блокировку |
| Время замера | 0,14-0,18 с | - | инфо | "Кто держит" 0,11-0,14 с; журнал на стенде небольшой |
| БСП 3.1.2 и 2.4.6 (Бухгалтерия и УТ для Казахстана) | "механизм не найден" | не падать | внимание | регистра "Обработчики обновления" там нет, обработка пишет об этом серой строкой |
Разбор результата
Самая полезная находка прогона: запись "зацикливание" в регистре БСП врёт о причине. Обработчик ждал блокировку на каждом элементе, пропускал его и в итоге не обработал ничего, и БСП посчитала это циклом. Кто поверит регистру, будет искать цикл в коде обработчика. Настоящая причина лежала в журнале, в 76 предупреждениях с одним и тем же текстом про блокировку.
Как проверить своё обновление
- 01
Открыть под администратором
Файл - Открыть, выбрать обработку. Журнал регистрации и список сеансов доступны только с полными правами, без них разбор виновника будет без журнала.
- 02
Дождаться второго замера
Замер запускается сам при открытии. Если обновление только стартовало и истории ещё нет, форма повторит замер через 10 минут, если её не закрывать.
- 03
Прочитать строку вердикта
Зелёная значит ждать, время окончания в ней же. Жёлтая и красная называют обработчик и причину.
- 04
Разобрать виновника
Блок "Кто держит" показывает попытки, текст ошибки и журнал. Перезапускать обработчик надо в штатной форме "Отложенные обработчики", сама обработка в базу ничего не пишет.
Не получается самим? Напишите, разберёмся
Ведём казахстанские типовые: Бухгалтерию, Зарплату и управление персоналом, Розницу. Обновляем базы с доработками так, чтобы фискальная часть шла в ногу с законом, а ваши доработки не отваливались.
- Стоимость
- от 25 900 ₸цена лицензии от вендора (1С), без наших работ; сопровождение и доработки - по разбору базы
Рядом по теме
Почему не выполняется регламентное задание
Если обработка сказала, что задание отложенного обновления не запускается: флаг на кластере, копия базы у БСП, пользователь, расписание.
Проверка внешних обработок перед обновлением
Вторая беда большого обновления: какие вызовы ваших внешних обработок и печатных форм упадут на новом релизе.
Анализ нагрузки кластера 1С
Когда обработчик держит блокировка: кто блокировал базу и кто грузил сервер в это время.
Частые вопросы
По каким признакам обработка решает, что сломалось?
Задание отложенного обновления не запускается, обработчик исчерпал попытки или за последний час нет никакого движения: ни обработанных объектов, ни завершённых обработчиков. В остальных случаях обновление просто идёт, и строка вердикта называет время окончания.
Откуда берётся прогноз и насколько ему верить?
Это остаток, делённый на скорость последнего часа, отдельно по объектам и по обработчикам, и берётся более поздняя дата. На стенде за два часа до конца прогноз ошибся на 5 минут. Пока один обработчик ждёт блокировку и ничего не завершается, прогноз уезжает вперёд на часы, и это тоже сигнал.
Почему в регистре "зацикливание", а обработка пишет про блокировку?
БСП засчитывает попытку за "зацикливание", если обработчик отработал и не обработал ни одного объекта. Так бывает, когда каждый элемент пропущен из-за блокировки. Обработка читает журнал регистрации по этому обработчику и показывает корневую причину.
Почему попыток 4, если предел 3?
Так считает БСП: одна попытка за исключение в обработчике и ещё одна за "зацикливание", когда обработчик отработал впустую. На стенде первый запуск дал 2 из 3, второй довёл счётчик до 4.
Обработка может перезапустить обработчик или поднять ему приоритет?
Нет, она только читает регистры БСП, план обмена обновления, журнал регистрации и список сеансов. Перезапуск, приоритет, расписание и число потоков остаются в штатных формах.
Заработает на старой конфигурации?
Нужен регистр "Обработчики обновления", он есть в БСП 3.1.11. На УТ для Казахстана 3.4 (БСП 2.4.6) и Бухгалтерии для Казахстана 3.0.40 (БСП 3.1.2) обработка пишет "механизм не найден" и не падает. Версии на обычных формах нет: в таких конфигурациях этого механизма тоже нет.
Бесплатный экспресс-аудит вашей 1С
За 1-2 дня посмотрим вашу базу, найдём, где теряется производительность, и скажем, что с этим делать. Без обязательств.
Обсудим задачу
Быстрее всего в WhatsApp: напишите пару строк о задаче, ответим в течение рабочего дня.