контекст при создании подключения и запросах? Как лучше это использовать, условно понимаю, что можно контекст с времён ответа с бд передать, хотелось бы узнать как используете
Для отмены запросов.
А вот мне интересно, при этом TCP соединение будет разорвано, или нет?
Нет, но выставит дедлайн на сейчас, чтобы вернуть ответ сразу, как отменится контекст. https://github.com/jackc/pgx/blob/master/pgconn/pgconn.go#L404
Для того что бы сделать отмену запроса, создается новое подключение к PostgreSQL https://habr.com/ru/companies/avito/articles/716516/ что может приводить к повышенной нагрузке на PostgreSQL
Deadline в net.Conn на само соединение никак не влияет, это по сути настройка рантайма
Таков протокол у PostgreSQL
Я понимаю. Интересно, почему такой протокол у постгреса.
эээ... А что эта настройка рантайма тогда делает?
Возвращает управление коду. Ожидание байтов по сети же асинхронное.
Говорит, к какому времени надо разблокировать чтение или запись. Я проверял, если он истёк, то его можно снять или продлить и соединение будет вполне работать дальше
Нельзя же отменить запрос на той стороне. Ты можешь только отменить ожидание пакетов, но пакеты, если соединение еще живое, все равно придут потом.
Обсуждают сегодня