# 「次回へ」と出続けていた 25 本の点検は、一度も走っていなかった：3 つの時間予算を、同じ開始時刻から数えていた

> 点検の処理は 3 段構えで、予算が同じ開始時刻から数えられていたため、持ち回りの 25 本は毎回 0 本だった。ログの「18 件を次回へ」は全部の意味だった。制限時間から割り付ける形に直し、各ステップの所要時間をログに出した。

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

  English version (https://koshinstudio.com/en/notes/budget-starved/)

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

  iOS アプリ「トレカダッシュ (https://koshinstudio.com/works/torecadash/)」の裏側には、記事の「販売の形式」を点検して直す処理があります。この処理の中に、「持ち回りで 25 本の点検を順に走らせる」部分がありました。

  2026 年 9 月 11 日に、処理の各段の所要時間を測る計器をつけると、その 25 本は、一度も走っていなかったことが分かりました。ログには、「時間予算のため 18 件を次回へ」と出続けていました。この「18 件」は、一部ではなく、全部という意味でした。

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

## 3 つの予算が、同じ開始時刻から数えられていた

  この処理は、3 段構えでした。それぞれに、時間の予算があります。

    段 | 予算 | 実測

      ① 本体のループ | 420 秒 | 425 秒を使い切る

      ② 毎回走る枠 | 780 秒（通算） | 実際に使えるのは 360 秒。861 秒で終了

      ③ 持ち回りの 25 本 | 700 秒（通算） | ②が 700 秒を超えるので、毎回 0 本

  3 つの予算は、同じ開始時刻から数えられていました。①が 420 秒、②は通算で 780 秒、③は通算で 700 秒。一見、段ごとに余裕があるように見えます。しかし、②は「通算 780 秒」のうち、①が 425 秒を使ったあとの 360 秒しか使えません。そして、②が終わった時点（861 秒）で、③の「通算 700 秒」は、とうに過ぎています。③は、毎回、始まる前に、「予算切れ」と判断されて、0 本でした。

  ログの「時間予算のため 18 件を次回へ」は、毎回、全部を次回へ回していました。「次回」は、永久に来ません。

## 直し方：勘で広げず、制限時間から割り付ける

  予算の数字を、勘で広げるのは、やめました。代わりに、ジョブそのものの制限時間から、割り付ける形にしました。制限時間は 1 か所（REPAIR_SALE_TYPES_TIMEOUT_SEC）にだけ書き、各段の締め切りは、それに割合を掛けて出します。

    段 | 締め切り（制限時間に対する割合）

      ① 本体 | 23%

      ② 毎回走る枠 | 67%

      ③ 持ち回り | 93%

  制限時間は、1,800 秒にしました。段の締め切りは、前の段の続きでなく、全体に対する割合なので、前の段が使い切っても、後ろの段の予算は残ります。

## 計器を足す：どの段が重いか、見えていなかった

  もう 1 つの原因は、「12 本のうち、どれが重いのか」が分からないまま、上限だけを広げていたことです。そこで、1 ステップごとの所要秒数を、ログに出すようにしました。実測の、重い順です。

    ステップ | 所要

      通知済みの非表示記事に、代わりの記事を付ける | 119 秒

      告知画像の QR から、応募先を探す | 102 秒

      定価の目安の、単位を直す | 48 秒

      定価の目安を、写す | 46 秒

      応募先も応募方法も無い記事を直す | 41 秒

## 分かったこと

> 「次回へ」は、次回が来ると決まっているときだけ、意味がある。

- 予算を、同じ開始時刻から数えると、後ろの段が飢える。前の段が使い切れば、後ろは 0 です。

- 「次回へ」のログを数える。毎回、全部が「次回へ」なら、それは「一度も走っていない」です。

- 上限は、勘で広げず、全体の制限時間から割り付ける。

- まず、各段の所要時間を測る。どれが重いか分からないまま、上限だけ広げても、直りません。

  この話に出てくるもの

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

- 監査 61 本を総点検して見つけた 4 つ (https://koshinstudio.com/notes/audit-sweep-61/) — 同じ「持ち回りに届かない」話

- 関門を直しても、すでにあるデータは直らない (https://koshinstudio.com/notes/fix-the-existing-data/) — 直す処理に順番が回らない話

- Gemini の費用を削る前に、計器を疑った (https://koshinstudio.com/notes/gemini-meter/) — 先に計器を直す話
