30秒制限を甘く見ていた | sola's note

sola's note

日ごろのメモを書いていきます。何か新しいものを作るために。

セッションについて書き途中だけど、それは一旦置いといて
GAEのリクエスト制限について。

正直言って


 通 信 コ ス ト が ヤ バ イ


本家のサイトでも、紹介サイトでも
かなり強く言われている

1000件制限と30秒制限

これは

一回のリクエストで取得できる件数は1000件が上限ですよ

とか

一回のリクエストに30秒かかるとエラーが出ますよ

といった制限を意味している。
取得可能件数が1000件なのは、なんかちょっとイヤだが
プログラムをした事がある人なら

30秒制限はそう引っかからない

と思うだろう。
だがしかし


だがしかしだよ。


引っかかるんだよ。
結構あっさりと。

普通に考えたら、1リクエストで30秒なんてかかる処理なんて
システムとして破綻している
って思うけど、かかるのです。

特に 書 き 込 み 処 理

あまり叫ばれていない(?)けど、
噂では書きこみ処理は読み込み処理の

 5 倍

の時間を要するそう。
詳しく調べていないので、ソースは無いですが
実際

50件位のエンティティの書き込みをしようとすると

余裕でタイムアウトになる。
そう噂の

DeadLineExceededException

これ。
最近かなり親しくなってきた。

まあ要は、即時反映が必要なデータではなければ
cronとかキャッシュで対応して下さい
なんて言う事らしいが、

まさかここまで意識する必要があったとは

想定外ヽ(゚∀゚)ノ
作ってるプログラムのロジックを組み替えなければいけない。

通信コストを甘く見過ぎてた。