5

Google Cloud Datastoreにテーブルがあり、小さなデータ構造が格納されています。このデータ構造はPythonサービスで作成され、別のPythonサービスで読み込まれます。私はgcloudバージョン0.15.0を使用しています。ここで私は読んで/へ/ GCDからのデータを書き込むために使用Pythonのコードは次のとおりです。PythonでGoogle Cloud Datastoreのタイムアウトエラーが発生する

from gcloud import datastore 
import datetime 
import json 
class GCD(object): 
def __init__(self, project_id): 
    self.client = datastore.Client(project_id) 

def put(self, table, key, data): 
    with self.client.transaction(): 
     entity = datastore.Entity(self.client.key(table, key), exclude_from_indexes=['context']) 
     entity.update({'context': json.dumps(data), 'created': datetime.datetime.utcnow(), 'done': True}) 
     try: 
      self.client.put(entity) 
     except Exception as e: 
      print "GCD save failed with exception: %s" % e 
    return None 

def get(self, table, key): 
    entity_key = self.client.key(table, key) 
    entity = None 
    try: 
     entity = self.client.get(entity_key) 
    except Exception as e: 
     print "GCD read failed with exception: %s" % e 
    if not entity: 
     return None 
    else: 
     return json.loads(entity['context']) 

私は、読み取りの多数を観察しています/メッセージと障害を書く「読み出し動作がタイムアウトしました」。 > 5%の失敗は、30Kで1の予想される失敗率を記述している文書にはかなり違反しています。

私の質問は、以下のとおりです。

  1. それはdatastore.client.getとdatastore.client.putの呼び出しでタイムアウトを増やすことは可能ですか?私は再試行に基づいて答えを探しているわけではありません。すでに試したことがあり、再試行だけに依存したくありません。

  2. これらのタイムアウトエラーを緩和できるテーブルを作成したり、クライアントを設定するときに何かすべきことはありますか?

  3. Python gcloudはスレッドセーフではなく、タイムアウトの問題があるhttplib2.Httpを使用しています(https://github.com/GoogleCloudPlatform/gcloud-python/issues/1214)。 (もっと安定した)Pythonリクエストパッケージを使う方法はありますか?

おかげで、

+0

Wathの:-)いくつかの再試行メカニズムをお勧めしますか? – Adam

答えて

0

あなたはそれが無限に待機して、デフォルトのタイムアウトがNoneの要求私の知る限りhttps://google-auth.readthedocs.io/en/latest/user-guide.html#making-authenticated-requests

を参照してください、何の問題もなくrequestsまたはurllib3を使用することができます(サーバーが閉じるまで。)あなたをあなたはrequestメソッドをオーバーライドし、好きなようにデフォルトのタイムアウトを設定するAuthorizedSessionにもSessionを渡すことができます。

あなたはまだ問題が発生した場合、私は)()を入れて、(取得するためのコールである約どのように頻繁に問題https://github.com/GoogleCloudPlatform/google-cloud-python/issues/2694

関連する問題