2016-10-19 8 views
-3

PHPのバックグラウンドから来ています.Golangでリソースを安全に使用する方法について少し混乱しています。私の主な関心事は、ウェブコンテキストでは、PHPで、スクリプトは通常短命(HTTPリクエスト/レスポンスライフタイム)ですが、Golangではこれが永遠に実行されるはずです(GolangプログラムはWebサーバーとWeb同じ時間にアプリケーション)。Golangの長年のプログラムとリソース(ファイルハンドル、TCP接続など)

データベース接続、ログファイルを扱うときは、それぞれのリクエストではなく1回開く必要があることがよくありますが、これは意味があります。しかし、それはどれくらい安定していますか?

たとえば、データベース接続を開くと、ある時点でどのように破損しないことがわかりますか? (データベースが何らかの理由でそれを殺すことを決めた場合、またはマシンがインターネットアクセスを失った場合、後でインターネットにアクセスすると接続が有効になるのでしょうか?)PHPでログファイルと同じですが、システム管理者にとっては問題ありません。セットアップログのローテーションは、しかし、Golangでは、私は思うファイルハンドルを破るだろう(プログラムがこれについて知っていない場合)?

私は本当にGolangの方法で作業したいと思いますが、各リクエストでこれらのリソースを開いたり閉じたりしないようにしたいと思いますが、これを行う「安全な」方法は何か分かりません。それとも、そのような懸念のための機能が組み込まれていますか?

+0

通常、データベースへのアクセスは、必要に応じて接続/再接続する接続プールを通じて行われます。 – JimB

答えて

0

Goでは、ログファイルとデータベースの両方をGo慣用方法で処理する組み込みパッケージがあります。

彼らは次のとおりです。

、長時間実行デーモンのを作成することができ、任意の言語、エラーチェックとエラー処理と同様に重要になるでしょう。