wg.Done()
for {
if err := client.Consume(ctx, []string{cfg.Queue.Mail}, cnsm); err != nil {
log.Fatal().Err(err).Msgf("Error from consumer: %v", err)
}
if ctx.Err() != nil {
return
}
cnsm.SetReady()
}
}()
Заменить на такой код:
go func() {
defer wg.Done()
for {
if err := client.Consume(ctx, []string{cfg.Queue.Mail}, cnsm); err != nil {
log.Fatal().Err(err).Msgf("Error from consumer: %v", err)
}
select {
case <-ctx.Done():
return
default:
cnsm.SetReady()
}
}
}()?
Чатгпт разрешил
можешь вообще убрать ctx проверку, если контекст отменится - то у тебя Consume вернет ошибку и упадет
зачем?
Обсуждают сегодня