今週末、新しいプロジェクトで 1 日の無料割り当てを使い果たしました。参考までに、これは 50 万回の書き込みであり、計算が正しければ 50,000 回です。
以下は、私のプロジェクトでデータストアの書き込み操作を行っている唯一のコードです。
old = Streams.query().fetch(keys_only=True)
ndb.delete_multi(old)
try:
r = urlfetch.fetch(url=streams_url,
method=urlfetch.GET)
streams = json.loads(r.content)
for stream in streams['streams']:
stream = Streams(channel_id=stream['_id'],
display_name=stream['channel']['display_name'],
name=stream['channel']['name'],
game=stream['channel']['game'],
status=stream['channel']['status'],
delay_timer=stream['channel']['delay'],
channel_url=stream['channel']['url'],
viewers=stream['viewers'],
logo=stream['channel']['logo'],
background=stream['channel']['background'],
video_banner=stream['channel']['video_banner'],
preview_medium=stream['preview']['medium'],
preview_large=stream['preview']['large'],
videos_url=stream['channel']['_links']['videos'],
chat_url=stream['channel']['_links']['chat'])
stream.put()
self.response.out.write("Done")
except urlfetch.Error, e:
self.response.out.write(e)
これは私が知っていることです:
- 「ストリーム」に 25 を超える「ストリーム」が存在することはありません。.put() を正確に 25 回呼び出すことが保証されています。
- 実行するたびにすべてを更新する必要があるため、この呼び出しの開始時にテーブルからすべてを削除します。
- 現在、このコードは 60 秒ごとに実行される cron にあります。1 分間に 1 回以上実行されることはありません。
- Appstats を有効にしてこれらすべてを確認したところ、意図したとおり、datastore_v3.Put カウントが 1 分ごとに 25 ずつ増加していることがわかります。
ここで何か間違ったことをしているに違いありません。1 分間に 25 回というのは、1 時間に 1,500 回の書き込みであり、現在見ている 50,000 回ではありません。
ありがとう