で持続的な変化を私は更新とPython用のbotoを使用して読み取ることSimpleDBのインスタンスを持っていることを確認します:後のBoto
sdb = boto.connect_sdb(access_key, secret_key)
domain = sdb.get_domain('DomainName')
itemName = 'UserID'
itemAttr = {'key1': 'val1', 'key2': val2}
userDom.put_attributes(itemName, itemAttr)
期待を動作します。名前 'UserID'と値val1とval2の新しい項目がドメインに挿入されます。
さて、私が直面しています問題は、私は、右のその属性を更新した後
query = 'select * from `DomainName` where key1=val1'
check = domain.select(query)
itemName = check.next()['key2']
をそのドメインを照会する場合は、行の値が見つかりませんでしたので、私はエラーを取得することです。しかし、書き込みと読み取りの間にtime.sleep(1)を追加するとすべてが機能します。
この問題は、put_atributesが書き込みのためにデータベースに信号を送るが、この変更が永続化されるまで待機しないという事実によると考えられます。私はまた、アイテムを作成し、そのアイテム(item.save())をあまり成功させることなく保存することで書くことを試みました。誰でも次の操作に進む前に値がSimpleDBインスタンスに書き込まれていることを確認する方法を知っていますか?
ありがとうございました。
ありがとう、それは完全に働いた。私はbotoバージョン1.9bを使用していたため、consistent_readを使用して問題に遭遇し、2.3.0にアップグレードして解決しました。 – angelrh