PHPのバックグラウンドから来ています.Golangでリソースを安全に使用する方法について少し混乱しています。私の主な関心事は、ウェブコンテキストでは、PHPで、スクリプトは通常短命(HTTPリクエスト/レスポンスライフタイム)ですが、Golangではこれが永遠に実行されるはずです(GolangプログラムはWebサーバーとWeb同じ時間にアプリケーション)。Golangの長年のプログラムとリソース(ファイルハンドル、TCP接続など)
データベース接続、ログファイルを扱うときは、それぞれのリクエストではなく1回開く必要があることがよくありますが、これは意味があります。しかし、それはどれくらい安定していますか?
たとえば、データベース接続を開くと、ある時点でどのように破損しないことがわかりますか? (データベースが何らかの理由でそれを殺すことを決めた場合、またはマシンがインターネットアクセスを失った場合、後でインターネットにアクセスすると接続が有効になるのでしょうか?)PHPでログファイルと同じですが、システム管理者にとっては問題ありません。セットアップログのローテーションは、しかし、Golangでは、私は思うファイルハンドルを破るだろう(プログラムがこれについて知っていない場合)?
私は本当にGolangの方法で作業したいと思いますが、各リクエストでこれらのリソースを開いたり閉じたりしないようにしたいと思いますが、これを行う「安全な」方法は何か分かりません。それとも、そのような懸念のための機能が組み込まれていますか?
通常、データベースへのアクセスは、必要に応じて接続/再接続する接続プールを通じて行われます。 – JimB