2009年6月28日日曜日

Google App Engine考察、データ処理の実行方法

例えばバナーの配信履歴を1日1回集計したい、といったときにバッチを走らせる必要がある。GAEでバッチっぽい機能として次が用意されている。

  1. Cron機能
  2. Task Queue API
  3. remote_api

Cronとはその名の通り、定期的にコマンドを実行する機能。ただ、Linuxのcronではプログラム(スクリプト)を指定するけど、GAEのcronではURLを指定する。

Task Queue APIの解説ページには「Task Queue APIを利用すれば、ユーザが(ページを)リクエストした際に、処理をバックグラウンドで起動させることができる。(原文は英語)」と書いてある。完了まで時間がかかる処理を受け付けた際、ユーザへ先に応答しておいて、処理はバックグラウンドで走らせる、ということだろう。そういえば、PHPでWebアプリを構築したとき、ユーザに素早く応答するため、次のように書いた記憶がある。

system( "/path/to/script.php &" );

最後のremote_api、これはローカル(管理者のPC)にあるPythonスクリプトを通じてDataStoreをコントロールする手段っぽい。これを使うとCSVファイルをDataStoreにインポートすること、とかができる。

今まで使っていたLinuxサーバとは考え方が異なるが、まあ何とかなりそうだ。

0 件のコメント:

コメントを投稿