Мой код выглядит следующим образом:времени golang из чтения из канала, используя диапазон
outChannel := make(chan struct{})
...
for out := range outChannel {
...
}
У меня есть продюсер писать на outChannel
и хотел бы тайм-аут при чтении из него (если общая обработка занимает больше XX секунд) , Каким будет правильный способ?
Как я только видел конструкцию (по адресу: https://github.com/golang/go/wiki/Timeouts) с использованием select
с многократными case
сек чтение из каналов, однако, это, кажется, не применяется один раз range
.
, что 'break' ломает только с' select'. Вам нужен ярлык или возврат, чтобы выйти из цикла for. – JimB
Спасибо, я написал это слишком быстро. Я добавил ярлык, но я предполагаю, что обычно это будет внутри func, и возврат будет более читабельным. – djd