Контракт Scheduler с методами Queue и Status

Определите queued → running → done/failed, уникальность ID, владение request и политику переполнения очереди. Status должен возвращать согласованный снимок и отличать неизвестный ID.

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

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

Определите queued → running → done/failed, уникальность ID, владение request и политику переполнения очереди. Status должен возвращать согласованный снимок и отличать неизвестный ID.

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

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

Условие

Нужен планировщик: Queue(request []byte) ID принимает задачу, Status(id) возвращает статус, результат и ошибку. Какие состояния и гарантии определить до реализации?

Ответ

Определите queued → running → done/failed, уникальность ID, владение request и политику переполнения очереди. Status должен возвращать согласованный снимок и отличать неизвестный ID.

Скопируйте входной []byte, если вызывающий код может его менять. Состояния защищайте синхронизацией, а долгую работу выполняйте вне locks. Сигнатура Queue без error требует явного выбора: блокировать до приёма либо изменить контракт, чтобы сообщать отказ. Для production нужны ограничение ресурсов, завершение workers и правила восстановления после рестарта.

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

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

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

Подробнее