Кто сохраняет результаты фоновых задач из канала

Выделенный collector читает results и атомарно обновляет общее хранилище задач. Status читает снимок из того же хранилища, а не пытается забрать событие из канала.

Короткий ответ

Что ответить на собеседовании

Выделенный collector читает results и атомарно обновляет общее хранилище задач. Status читает снимок из того же хранилища, а не пытается забрать событие из канала.

Подробный разбор

Ответ с пояснениями

Условие

Workers Go пишут {ID, Result, Err} в results. API Status(id) должен возвращать queued, running, done или failed. Кто должен читать канал и где хранить итог?

Ответ

Выделенный collector читает results и атомарно обновляет общее хранилище задач. Status читает снимок из того же хранилища, а не пытается забрать событие из канала.

Канал — механизм передачи, не долговременный архив результатов. Для одного процесса допустима защищённая mutex map; после рестарта она исчезнет. Для устойчивости используйте БД и определите повторное выполнение. Закрывать results нужно после завершения всех отправителей, чтобы collector дочитал остаток; не удерживайте mutex во время блокирующей отправки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее