2017-08-11 4 views
0

リクエストモジュールを使用して、ピアによって設定されたシンプルなサーバーでホストされているPostgREST API経由でアクセスできる、比較的大きなPostgreSQLデータベース(〜14 GB) Pythonリクエストを使用して504タイムアウトするまでの時間が増加する

私はシンプルなAPI呼び出しを行う

、このよう
requests.get('https://api.nycdb.info/real_property_legals?bbl=eq.050') 

ように私は200応答を取得し、すべてが正常に動作します。しかし、計算量の多い検索(テキスト検索など)を行うと、ほとんどの場合504件の回答が得られます。

これはほとんど常に504タイムアウトを返すAPI呼び出しの例です:

requests.get('https://api.nycdb.info/[email protected]@."MADISON"') 

私は、サーバーは、そのシンプルな処理能力とサイズに、十分に速く応答していないためである疑いがありますデータベースの。しかし、私はここで援助を求めている。

504応答が提供される前に要求が応答を待つ時間を増やす方法はありますか?より複雑なクエリの信頼性を向上させるために他に何ができますか?

答えて

0

タイムアウトを追加することができます。ここで、秒は浮動小数点です。 (pydoc.get()に直接提供できるoptsについては、pydoc requests.requestを参照してください。)APIサーバー側に制限がある場合もあります。クイック・ケースでは、クエリをバイトサイズのチャンクに分割する必要があります。

0

要求のためのドキュメントを読むと、requests.getがデフォルトでタイムアウトしないことがわかります。

また、504は、ゲートウェイサーバーによって生成されるエラーです。

実際には、あなたのPostGRESTサーバーがあなたのpostgresサーバーとの通信でタイムアウトしています。

request.get呼び出しを変更することでこれを止めることはできません。その代わりに、一方または両方のサーバーを再構成する必要があります。

(つまり、これはPythonまたはリクエストの問題ではありません)

+0

ありがとうございます!私は要求のドキュメントを読んだが、それはすべてが意味するものを理解できなかった。これは理解しやすい。 –

関連する問題