中断再開型のデータ収集ツール
2019年から蓄積された週単位の記録を、5年分まとめて取得する必要がありました。リクエストを一度に送ると途中で応答が途切れ、その日の収集は半分で終わってしまいます。途切れた箇所から続きを取得し、全区間をそろえました。
収集区間
以前
途中で停止
以後
2019–2024の全区間
画面はお客様情報保護のため、同じ機能をモックデータで再構成したものです。
背景
取得すべき資料は5年以上にわたって蓄積されていました。2019年の第1週から2024年 7月まで、週単位で残された記録です。一度に取得できる量ではなく、途中で止まると どこまで取得したかを探すところからやり直しになります。スケジュールが決まっており、 タイミングが重要でした。
現場の状況
問題は収集ツールではなく、リクエストの送り方にありました。人が読む速度と 関係なくリクエストを一度に送ると、途中で応答が途切れ、その日の収集は半分で 終わってしまいます。
課題
「速く取得すること」ではなく、「最後まで取得すること」へと課題を置き換えました。 半分で止まるより、時間がかかっても全区間を取得する方が役に立ちます。 抜けのある資料は、結局取り直すことになるからです。
収集対象の利用規約とロボット排除標準を確認することが、この判断の前提です。 取得してよい資料かどうかを先に判断しなければ、その後の設計は意味を持ちません。
開発内容
- リクエスト間隔とリトライの制御 — 一度に送らず、間隔を空けて送ります。そう することで、5年分が途中で欠けることなく最後までそろいます
- 週単位で区切って取得 — 5年以上の区間をひとまとめに扱わず、週単位に分割します。 失敗してもその週だけを取り直せば済みます
- 中断箇所からの再開 — 止まった位置を記録します。最初から取り直す必要が ないからこそ、長期間の収集を最後までやり遂げられます
- 残り時間の表示 — 進行率と予想残り時間を画面に表示します。何時間もかかる作業を 何の表示もなく動かしていると、途中で止められてしまいます
結果
2019年第1週から2024年第30週まで、全区間を漏れなく取得しました。 その後、同じ 仕組みを他の収集案件にも活用しています。