自己満足であげてるだけのシャド研統計まとめサイトだが、こやつに講じた新しい集計がすんごく重い。
重いのは処理じゃなくて時間。フルで回すと6時間くらいかかる。さすがにそんな無茶するわけにもいかないので、対象を日毎に分割してる。

この分割で困った。
あんまり分割しすぎると精度が出ない。いやまあそんなには求めてないんだけど、それでもそれなりの数ほしい。なのでなるべく大きな塊で値を取っておきたい。

日々の集計対象がどーーーしても少しずつ増えちゃう処理内容やってるから、徐々に実行時間が伸びていく。最初は10分、だんだんのびて29分台にまで乗り始めてしまった。
https://sfv.halipe.co/ の集計周りはcroud runでやってるのだが、最長30分しか回ってくれない。それ以上の長大なやつやりたかったらGCE立てろよってことだと思うし、ごもっとも。

が、それはやりとうない。
正直に言うと変に手こずっててうまくいってないから、Cloud Runでなんとかしたい。
たぶんWorkflows使うのが正解な気はするのだが、明日にもバッチがパンクしてエラー終了しますとかいう状態だったので、学習する余裕がない。
AWSでCFNつかってたから同じノリでいけんじゃないかとは思うんだけども。

題名にした「改善」はちょっと違うかもしれない。たんにCloud Runの領分でなんとかさせるように工夫しました程度の話ではある。

なにやったか

  1. 実行対象を分割してStorageに保存
    • ウン万件の処理対象から本日分をピックアップ
    • さらにそれを一回のcloud runで処理できる大きさに分割
    • 分割したリストをStorageにテキストで保存
  2. データ収集
    • Storageからファイル一個取り出して消す
    • なければ黙って終了
    • 取り出したファイルをもとにデータ収集をやる
  3. 2のデータ収集を定期的になんどか叩く

と言った具合。cloud schedulerで1は一度、2は30分ごとに4~5回セットしている。
別に問題はないんだけど2の処理はいまのとこ20分程度で終わっているから、次回実行までの空き時間がちょっと無駄だなーって思うのと、当日分の処理が終わっていても(データの有り無しにかかわらず)2を起動しちゃうのがバカっぽいなと思っている。

One thought on “集計の改善をした”

現在コメントは受け付けていません。