FC2ブログ

スポンサーサイト

このエントリーのカテゴリ : スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【GAEでMapReduceを使おう!】TaskQueueが詰まってえらいこっちゃ

このエントリーのカテゴリ : 【GAEでMapReduceを使おう!】

こちらのサイトで
http://monitorequest.appspot.com/traininfo/
電車遅延の口コミをひたすら収集していましたが、お盆休みで目を離したスキに集計処理が止まってました。
GoogleAppEngine上で、appengine-mapreduceのモジュールを使って集計処理をしています。

GoogleAppEngineのコンソールを見てみると、MapReduceの処理が開始されるや常にCPUが100%近くになって、6時間くらい経つと止まってました。
原因を見てみるとTaskQueueがフリーで使用できる上限に達しているようです。
QuotaDetailsの「Task Queue API Calls」が上限の100,000になってました。

どうもMapReduceの処理が失敗して、再実行するのを繰り返し行うために無限ループに入ってしまったようです。
フリーだから10万回で止まったから良かったものの、お金払ってたとしたら…怖いですねぇ。

で、止めようとしたのですが、一筋縄ではいきませんでした。

1. EclipseからGoogleAppEngineのアプリケーション更新しようとしたら500エラー!
 とりあえずcronで半日ごとに起動させていたMapReduceの処理を止めようと思いました。
 cron.xmlの定義をコメントアウトしてEclipseから更新!しましたが、500エラーが出て更新できません(ToT)

2. TaskQueueが削除できない!
 管理コンソールからTaskQueueを見ると、上限の5つたまっていたので、これをdeleteしようとするとこれも失敗!
 Queueを停止させてもダメ。

おそらく、Eclipseからのアプリケーションの更新も、TaskQueueの削除も全部TaskQueueで処理してるんじゃないかと思います。
うーん、TaskQueueを削除するのもTaskQueueで、フリーの上限に来ているから消せない。ちょっと滑稽。
これはお金を払うしかないのか?でも払っても上限が来たらもっと払わないとダメになるのでは…。


なんて思いましたが対処できました。

1. とりあえずTaskQueueを停止(Suspend)
2. 日が変わってTaskQueueの受付が可能になる
3. MapReduceのTaskQueueがリクエストされても実行されずに待ち状態

EclipseからGoogleAppEngineのアプリケーション更新時に500エラー出なくなりました。
また、管理コンソールのTaskQueueでQueueのdeleteでの失敗のなくなりました。

さらに、MapReduceの処理も失敗しなくなりました。。。
これは何もアプリを変えていないので微妙です。
いつ失敗して無限ループに陥るか。

はやいところ失敗したらリトライしないように修正しよう。
スポンサーサイト

テーマ : Google関連
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

toronic

Author:toronic
IT関係で10年働いたのでそろそろ独立したいと考えているけどなかなか一歩が踏み出しきれないありきたりなプログラマ

カテゴリ
ブックマーク
最新記事
月別アーカイブ
検索フォーム
最新コメント
ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文:

スポンサーリンク
リンク
一攫千金?
RSSリンクの表示
QRコード
QRコード
    助成金
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。