Вступить в клуб →
сложнаявопросКонтейнеры, Kubernetes и эксплуатация сервиса

После srv.Shutdown процесс завершается, а воркер не дописал пачку в базу

Кроме HTTP-сервера, в процессе работает горутина-воркер: она читает события из Kafka и пишет пачками в базу. При деплое main вызывает srv.Shutdown и выходит. Каждый деплой теряет последнюю незаписанную пачку, а смещения успевают закоммититься.

Как организовать завершение?

  • Отменить контекст воркеров и дождаться их через errgroup
  • Добавить time.Sleep(5 * time.Second) перед выходом
  • Полагаться на то, что Shutdown ждёт все горутины
  • Записывать события в базу по одному

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела