Как SetConnMaxLifetime работает с базой данных golang / sql

#sql #database #go

#sql #База данных #Вперед

Вопрос:

Меня смущает документация, в func (db *DB) SetConnMaxLifetime(d time.Duration) которой говорится:

SetConnMaxLifetime устанавливает максимальное время, в течение которого соединение может использоваться повторно.

Соединения с истекшим сроком действия могут быть закрыты лениво перед повторным использованием.

Означает ли это, что незанятые соединения закрываются d по истечении срока действия или что соединения закрываются в любом случае (либо в режиме ожидания, либо нет) после d истечения срока действия, как SetConnMaxLifetime предполагает? Кроме того, что означает ленивое закрытие в этом случае и возможно ли реализовать тайм-аут с помощью этого метода?

Ответ №1:

Нет, sql.DB не будет закрывать активное соединение. Очиститель работает только через пул бесплатных подключений.

Комментарии:

1. Спасибо за ответ. что это be closed lazily значит?

2. @fitti: это означает, что его можно закрыть в любое время, не обязательно синхронно с возвратом соединения с пулом.