質問

ステータスリクエストPG_Connection_Busy()を送信すると、リクエストは「接続がビジー」と「サーバービジー」を区別しますか?

つまり、サーバーには100の許可接続があり、そのうちの1つが現在のスクリプトに適用されます。 100の接続すべてが同時にクエリを送信し、そのうち99が2秒以上の処理時間を必要とします(理論的にはサーバーを最大の外部状態に入れて、「ビジー」にします)。これらの100のリクエストの1つは、です pg_server_busy() リクエスト。応答はそうでしょう True また False?

役に立ちましたか?

解決

pg_connection_busy() 基本的にlibpqを呼び出します PQconsumeInput() に続く PQisBusy(), 、両方ともに文書化されています非同期コマンド処理.

これは、サーバーが他の接続で全体的に忙しいこととは何の関係もありません。また、クエリなどに何も送信しません。結果を非同期に取得する際の入ってくるデータのバッファリングに関する純粋にローカルな条件です。

残念ながら、PHPの文書で与えられた例は誤解を招くものです。それは呼び出します pg_connection_busy() 非同期クエリが実行されていない新しい接続では、意味がありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top