# 「自動化できるものは全部自動化して」：まず数えると、修復処理 66 個が一度も定期実行から呼ばれていなかった。全部は載せず、6 個だけ載せた

> HTTP の 319 個と定期実行の 184 個を呼び出しで突き合わせると、66 個が手で叩かないと動かなかった。継続的なものだけを、下見のあとで 6 個載せた。キューに積む処理が順番待ちを見ておらず、待ち行列が伸び続けていたことも直した。

- URL: https://koshinstudio.com/notes/automate-sorted/
- 公開: 2026-10-17
- 書いた人: Koshin（https://koshinstudio.com/about/）
- サイト: Koshin Studio

  English version (https://koshinstudio.com/en/notes/automate-sorted/)

トレカダッシュ 開発の記録 ／ 2026年8月

  iOS アプリ「トレカダッシュ (https://koshinstudio.com/works/torecadash/)」の開発で、ユーザーから、「自動化できるものは、全部自動化して」という指示がありました。

  2026 年 8 月 28 日、まず、数えました。すると、直すための処理が 66 個、定期実行から一度も呼ばれていませんでした。この記事は、その数え方と、66 個を「全部は載せなかった」理由の記録です。

  数字は、2026 年 8 月 28 日の作業の記録から書いています。

## 数えた：66 個が、「手で URL を叩かないと動かない」状態だった

  HTTP のエンドポイント 319 個と、定期実行 184 個を、名前ではなく、関数の呼び出しで突き合わせました。名前が違っても、定期のジョブから呼ばれていることがあるからです。

  結果、66 個が、手で URL を叩かないと動かない状態でした。人が「そろそろ回すか」と思い出すまで、直せるはずの記事が、直りません。

## 66 個を、一度に定期実行にはしなかった

  66 個は、3 つに分かれました。

- 継続的に必要なもの（新しいデータが来るたびに要る）→ 定期実行に載せる。

- 一度きりの移行（backfill*、reclassify* など）→ 載せない。毎日走らせても無駄で、事故の余地が増えるだけ。

- 破壊的なもの、人の判断が要るもの（孤立した商品の削除、手動の紐付け直し など）→ 載せない。

  新しい定期ジョブは、配備した瞬間に、一度走ります。載せる前に、全部、書き込まない下見（ドライラン）で、当たりを確かめました。

## 載せた 6 個

    処理 | 下見の結果

      X の締切が空の記事を直す | 対象 32 件、更新 0 件

      まとめ由来の店名を直す | 5 件（アカウントの宣伝文が、そのまま販売元になっていた）

      送料が値段に入っているものを直す | 0 件

      総称の商品への紐付けを直す | 0 件

      分割した記事の題名を直す | 新設したもの

      まとめ由来の締切を直す | 新設したもの

  時刻は、ばらしました。同時に走らせると、同時実行の枠を食い合って、待ち行列が伸びるからです。定期実行は、184 個から 190 個になりました。

  残りの候補（締切の修復、壊れた商品画像の修復、楽天のアフィリエイトリンクの修復）は、実行に 2 分以上かかり、下見が時間内に終わらなかったので、見送りました。確認せずに、載せません。

## 商品カタログは、すでに、全自動だった

  「商品カタログも、自動にできるよね」という問いへの答えは、「もう、なっている」でした。15 ジャンルすべてに、公式カタログの取り込みがあり、1 時間前に更新されていました。記事と商品の紐付けも自動で、実測 1,415 件中 1,406 件が、紐付け済みでした。残りは、「公式サイトに、まだ載っていない、新しい弾」で、公式が出せば、自動で入ります。

## 待ち行列が、伸び続けていた

  もう 1 つ、数えている途中で、見つけたことがあります。待ち行列が、81、86、91 と、45 秒で増え続けていました。

  原因は、ジョブを積む処理（enqueue）が、「実行中か」しか見ておらず、キューで順番待ちしている分を、見ていなかったことでした。同時実行の上限に達している間に、「1 分おき」のジョブの時刻が、何度も来ると、同じジョブが、何重にも積まれます。

  順番待ちの名前も覚えて、二重に積まないようにしました。待ち行列は、0 のままになりました。

## 分かったこと

> 自動化は、全部を載せることではない。数えて、仕分けて、確かめて、載せる。

- まず、数える。66 個が、一度も呼ばれていませんでした。名前ではなく、呼び出しで突き合わせます。

- 仕分ける。継続的なものだけを載せます。一度きりの移行と、破壊的なものは、載せません。

- 載せる前に、下見で当たりを確かめる。新しい定期ジョブは、載せた瞬間に走ります。

- 時刻を、ばらす。同時に走らせると、待ち行列が伸びます。

- キューに積む前は、「待っているか」も見る。実行中だけを見ると、何重にも積まれます。

  この話に出てくるもの

- トレカダッシュ (https://koshinstudio.com/works/torecadash/) — トレカの抽選・予約・先着の情報を集める iPhone アプリ

- 同時実行の枠を増やす前に見るもの (https://koshinstudio.com/notes/concurrency-slots/) — 待ち行列と枠の話

- 配備のたびに、日次の処理が丸ごと走り直していた (https://koshinstudio.com/notes/rerun-on-deploy/) — 定期処理の別の失敗

- 監査 61 本を総点検して見つけた 4 つ (https://koshinstudio.com/notes/audit-sweep-61/) — 総点検の別の話
