Допустим, у меня запущено несколько подпрограмм, которые выполняют HTTP-запрос и возвращаются в случайное время. Я запускаю программы (с группами ожидания и одной отменой среди них), и я хочу, чтобы они продолжали выполнять запрос, пока он не вернет OK (может истечь время ожидания). Когда возвращается первый, он вызывает отмену, и все остальные программы должны просто останавливаться.
Я не уверен, как я могу настроить случай функции функции, которая будет выполнять код, если контекст не выполнен?
Например, я знаю, как использовать time.After()
, но как мне сделать так, чтобы он выполнял код сразу, а не через какое-то время?
for {
select {
case <-ctx.Done():
wg.Done()
return
case <-time.After(time.Second):
// code goes here
}
}
Чем я могу заменитьвремя с?