Ответ эксперта

Фоновые задачи Node.js не отработали — можно ли установить причину?

Вопрос по направлению: Экспертиза исходного кода на JavaScript

Ответ

Если следы сохранились — да. Отложенную работу в проектах на Node.js — рассылки, выгрузки заказов, ночные пересчёты — чаще всего выполняет очередь задач вроде BullMQ поверх Redis. По её состоянию, журналам обработчика и хранилищу результатов эксперт устанавливает, была ли задача поставлена, взята ли в работу, завершилась ли ошибкой и запускалась ли повторно.

Две оговорки важны для выводов. Первая: повторный запуск — ещё не дефект — очереди обычно гарантируют доставку «не менее одного раза», и дефектом становится отсутствие защиты от повторов там, где она требовалась; именно так возникают задвоенные письма и заказы. Вторая: с Node.js 15 необработанная ошибка в асинхронной операции по умолчанию роняет процесс со стеком вызовов, а вот перехваченная и подавленная пустым обработчиком исчезает бесследно.

Поэтому отсутствие записи не означает, что события не было: выясняют, что система записывала и какая версия Node.js работала. Выполненные задачи вычищаются по сроку хранения — выгрузите их за спорный период раньше.

Актуализировано
Обсудить задачу

Нужна экспертиза или консультация?

Опишите ситуацию и цель обращения. Мы определим нужный вид исследования, подберём профильного эксперта и поможем подготовить вопросы и материалы.

  • Подберём специалиста
  • Поможем с вопросами
  • Оценим срок и стоимость
Оценить материалы или позвоните 8 (800) 333-24-09 Бесплатный звонок по России