такой фрагмент
https://cloud.yandex.ru/docs/functions/concepts/runtime/execution-context#reuse-context
> Любые объявления в коде функции (вне кода обработчика) остаются инициализированными, обеспечивая дополнительную оптимизацию при повторном вызове функции. Например, если функция устанавливает соединение с базой данных, вместо восстановления соединения в последующих вызовах используется исходное соединение. Вы можете добавить в код логику, которая проверяет существование соединения перед его созданием.
И не очень-то понимаю как это в коде должно быть реализовано (к примеру, на golang). Есть ли какие-нибудь примеры или дополонительные материалы?
Для проверки наличия установленного соединения с базой данных MySQL в языке Go можно использовать следующую функцию: go package main import ( "database/sql" "fmt" ) func main() { // Создаем переменную-обертку для подключения к базе данных db, err := sql.Open("mysql", "user:password@/database_name") if err != nil { fmt.Println(err) return } // Проверяем, установлено ли соединение if db == nil { fmt.Println("Соединение не установлено") return } // Выполняем другие запросы к базе данных и т.д. // Закрываем соединение после использования db.Close() } В данном примере мы используем переменную-обёртку db, которая представляет собой указатель на соединение с базой данных. Если соединение не удалось установить, функция sql.Open вернет nil, и мы выведем соответствующее сообщение. Обратите внимание, что для работы этой функции необходимо импортировать пакет database/sql и указать параметры подключения к базе данных (user, password и database_name).
Но ведь, в данном случае, код находится в коде обработчика и сохранения не будет, разве не так? В случае с питоном более-менее понятно: там все, что нужно кешировать, можно хранить в глобальных переменных
Советую спросить в чате, который посвящен serverless: https://t.me/YandexCloudFunctions/
Обсуждают сегодня