меня какая-то функция f(ctx), вызываемая в main(), где я ловлю сигналы системы, и собственно создаю контекст передаваемый в f. Сама f(ctx) делает долгий NewRequestWithContext. Прилетает мне от системы SIGTERM, ловлю я значит его в main(), дергаю cancel(). Как мне дождаться завершения долгого запроса (ну или похода в базу...)? Ведь NewRequestWithContext после cancel() сразу помирает?
не передавать контекст
Т.е? Как не передавать? Мне же нужно прибить функцию в которой долгий запрос. Допустим, там горутина, с блокирующим циклом (постоянно опрашиваю рест апи с долгим ответом)... Не передавать контекст в NewRequestWithContext? Или передавать, но с другим родителем, просто чтоб таймаут устанавливать? Верно?
проверять контекст в цикле
> Или передавать, но с другим родителем, просто чтоб таймаут устанавливать? Верно? да
Мерси! Попробую сейчас! :)
Обсуждают сегодня