2009年12月28日月曜日

GAE/Jを検証中

Latteの中間サーバとするべく、GAE/Jによる番組情報配信を検証中。
ひとまず、元ネタとなるデータをurlフェッチして正規表現で抽出、データストアに突っ込むまでをやってるんだが、GAE独特の概念にいろいろと戸惑い中。

まず、単純に時間をかければ何とかなるようなバッチ処理は不可能。
どんな処理でも、最大30秒以内に終了させないと、タイムアウトで強制的に終了させられる。
じゃあどうすればいいのかというと、Task Queueを使って分散処理させるしかない。ようは、バッチ処理をとにかく細切れに分解して、並列できるところは並列させ、それでも30秒以内が難しいところは、多段ロケット式にタスクをチェーンさせて動作させればいい。

それから、データストアは時々失敗するのが常識というのもなかなか。
だから、重要な処理には失敗することを考慮して、リトライ処理をくんでおかなければならない。トランザクションの仕組みもかなり独特なので、仕組みをよく理解した上でないと、どうやって対処すればいいのかが分かりづらい。

かなり制約が多いけど、その分安価にホスティングできるし、何より制約の多い環境でやりたいことを実現するのは、技術者として挑戦意欲がわいていい。
この正月休みは、GAE/Jと格闘することになりそうだ。

この中間サーバを介した新しいLatteも、年明けにはベータバージョンをリリースする予定。
ただ、課金対象のクォータの使われ方も考えなければならんので、状況によってはGAE/J経由をあきらめなければならない可能性も。
ひとまず作ってみないと何とも言えないのが今の状況。

0 件のコメント: