Skip to content

Instantly share code, notes, and snippets.

@niwatako
Last active June 30, 2018 15:24
Show Gist options
  • Save niwatako/2a81666bd1f44ced2072b5975241f534 to your computer and use it in GitHub Desktop.
Save niwatako/2a81666bd1f44ced2072b5975241f534 to your computer and use it in GitHub Desktop.
Pay attention to the HUGE logs #CodePiece #potatotips

potatotips #52 (iOS/Android開発Tips共有会) - connpass https://potatotips.connpass.com/event/88164/

Ryo Sakaguchi わくわく Pay attention to the HUGE logs Android @wakwak3125

めっちゃでっかいログには気をつけようという話です。

  • 新機能の開発を行った
  • 大量データの可能性(1000件あるらしい)
  • 確実に送りたい

技術選定: 大量のデータを安心してバックグラウンドで処理する

WorkManager Google I/O 2018で発表された。バックグランドジョブを扱うのにとても柔軟に使える。

Workder() を継承したものを使う。

実行条件に電源接続されている、Wi-Fi接続されている、などの制限を加えられる。

適切なサイズにデータを加工すればいい、1万件500ずつで20ぐらいWorker作ればいいんじゃないかということでやってみた。

WorkManagerに感謝しながら金曜日に帰宅、月曜日、全部死んでた。

WorkManagerは何も悪くないが、RequestBodyが巨大でログが爆発した。

setLevel(Level.BODY) OkHttpLoggingInterceptorのログレベルをBody(つまり全部)出力しようとしていた。 logging=interceportをforkして出力ログサイズを制限できるパッチを当てたものを使用して回避。

Picassoにパッチを当てた話がとても参考になった。

Picasso にパッチを当てた話 - inFablic | Fablic, inc. Developer's Blog.

Picasso にパッチを当てた話 - hydrakecat’s blog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment