この記事の内容は既に古く、有料に限り(無料分はありますが、どうせ週$2取られるので)、専用インスタンスを無限に動かせるようになってます。
https://developers.google.com/appengine/docs/python/backends/overview?hl=ja
ただし、小生のスタンスは変わってないので、この記事自体は据え置きます。
基本的には、「30秒も要らねえよ」ってスタンスなので、解決方法は書いてません。それを探しに来たかたは悪しからず。
http://code.google.com/intl/ja/appengine/docs/roadmap.html
https://developers.google.com/appengine/docs/python/backends/overview?hl=ja
ただし、小生のスタンスは変わってないので、この記事自体は据え置きます。
基本的には、「30秒も要らねえよ」ってスタンスなので、解決方法は書いてません。それを探しに来たかたは悪しからず。
http://code.google.com/intl/ja/appengine/docs/roadmap.html
appengineのロードマップ的には、taskqueueやcronに限り、30秒ルールを撤廃する可能性があるらしいのですが。筆者はあまり困ってません。「悩まされてるデベロッパー」ってJavaで書いているのんじゃないでしょうか?
筆者はJavaは遅い、と思ってます。JSPの、「あー今コンパイルしてるな」なタメ時間もあり得ません。スピンアップ時間の無駄使い。
「スピンアップ終わったら、速いんだよ」とか言わない事を祈ります。そりゃあ当たり前というか。全部遅かったら目も当てられない。多分アナタも使わないでしょう。
ちなみにpythonの「スピンアップ」は2秒ぐらいっぽい。速いと見るか遅いと見るか。
もしくは、Slim3というフレームワークが速いらしいので
使ってみたらどうかと思います。ひょっとしてそれで済む話かもしれません。
そもそも、appengine は、社内で使ってるクラウドの一部を切り売りしているだけ。の筈。グーグルでも30秒ルールに従ってるのです。
datastoreの実装も、「あーこれならGmail作れるな」というものばかり。ラベルは、StringListProperty使ってるんだろうな。とか。
フツーのRDBMだったらリレーション使うところはReferencePropertyで、かなりやっていけます。またはModelクラスのメソッド実装で引っ張ってくるとかね。発想の転換が大事です。
1回のトランザクションで、データを1000個しか取り出せないのもグーグルにとっても同じです。Gmailや、Readerの件数表示が、1000以上は表示できないでしょう?件数も詳細を出さないで、800件ぐらい、とかサボってます。
と言うわけで、30秒撤廃は、グーグル内部のサーバ運営の根幹に関わるのでそうそう簡単では無いでしょう。想像ですが。
まあグーグル自身がやる、って言ってるんで可能性は0ではありませんが。まあ有料Quotaでしょう。
同じく、MapReduceをサポートするかもしれない!とか喜んでいる人が多いですが、何をするつもりなんでしょう?
#db.Model.count()が遅いから。じゃないですよね。
っていうか、
Support for mapping operations across datasets
って書いてあるんだけど、これってMapReduceなの?
違うんじゃね?
仮に使えるようになったとしても、無料はあり得ない。端的に言えば、MapReduce Quotaという項目が増えます。
30秒ルールとは別の意味で、
想定以上のリソースを食いつぶされる可能性がありますからね。