isValid() で使用するタイムアウトはどれくらいですか?
-
19-09-2019 - |
質問
Connection からのメソッドでは、どれくらいのタイムアウトを与えればよいでしょうか?:S 通常のタイムアウトがどのくらいになるのかわかりませんが、どれくらいの時間がかかりますか?:)
私はほしくない isValid() もっと時間があればtrueを返すことができる場合はfalseを返しますが、プログラム全体の速度が低下して「フリーズ」が発生することも望ましくありません。
0 を設定した場合、タイムアウトは気にせず、必要なだけ試行されることを意味しますか?
ありがとう!
解決
これは多くのことに依存します。一般に、isValid にかかる時間は、単純なクエリにかかる時間とほぼ同じであると考えられます。そのため、私はユーザーが許容できる最大時間を使用します。
例えば。(たとえば) Web アプリケーションのユーザーは応答を最大 5 秒待ってから諦めると考えられる場合は、その値を isValid に使用するとよいでしょう。なぜなら、データベースに到達するまでにたとえば 50 秒かかる場合、接続が有効であると宣言しても意味がありません。
他のヒント
通常のタイムアウトが何であるか、どれくらいの時間がかかるのか分かりませんか?
次に、プログラム構成にタイムアウトを設定します (これが何であれ)。おそらく、タイムアウトが発生したときにイベントをログに記録し、通常のタイムアウトがどのようなものであるかを時間をかけて経験してみるとよいでしょう。
...しかし、私はそれがプログラム全体を遅くして「フリーズ」を与えたくない
これはエンドユーザー向けの対話型プログラムですか。その後、緊張せずにどれくらいの時間を待つことができるかを考えてください。私にとっては、プログラムが何をしているかにもよりますが、2 ~ 3 秒はまだ問題ありません。
これはバックグラウンド サーバー プログラムですか。接続が遅延した場合に何が起こるかを考えてください (ネットワークの再接続など)。バックグラウンド プログラムの待機時間が長くなる可能性があります。