ジョブが止まったときに一番危ないのは「作業のゴールが溶ける」ことだった

※特定の案件ではなく、複数の現場経験を一般化した手順です。

「ジョブが動いていない。後続作業に影響がある。早急に対応してほしい。」

このメールが来た瞬間、現場の空気が変わります。

しかも今回は、復旧だけじゃなくて「今後はCron式で無期限化しよう」みたいな話まで同時に出てきました。

結論から言うと、危険なのは技術よりも『作業のゴールが溶ける』ことでした。

復旧と恒久が混ざると、議論も行動も迷子になります。

状況

  • ジョブが稼働しておらず、後続作業に影響が出ている
  • 関係者が「現在のスケジュールジョブ一覧」をまとめてくれた
  • 追加で「スケジュール済みジョブをCron式にして無期限化しよう」という提案が出た
  • ただし、ジョブ自体が削除されていたため「どこから呼ばれていたか」を実行履歴で断定できない状況もあった

まず混乱したポイント:ゴールが3つ混ざっていた

頭の中はこんな感じでした。

  1. まず止まってるジョブを復旧したい(今すぐ)
  2. 過去未処理分があるならデータパッチが必要かもしれない(要否判断)
  3. 将来の事故防止で無期限化も進めたい(恒久)

全部大事。なんですが、同じリストで扱うと一気に迷子になります。

「結局、今日なにを終わらせるの?」が曖昧になるからです。

収束した一手:ゴールを2本に分ける

ここで整理したのがこれ。

  • G1(今日):稼働復旧(とにかく後続影響を止める)
  • G2(恒久):無期限化(全ジョブ)+運用の見える化

これだけで議論が一気に進みました。

要は『今日の完了条件』が固定されるので、判断が減るんですよね。

今日(G1)のタスクを分解したら、動けるようになった

G1は「作業する・終わらせる」が目的。なので、判断を減らす。

  • T1:今日の実施範囲を1行で宣言(復旧まで。恒久は別)
  • T2:ジョブ再登録(復旧)
  • T3:最低限の動作確認(実行履歴/次回予定/エラー有無)
  • T3.5:データパッチ要否の精査(←ここを挟む)
  • T4:完了連絡(復旧完了/パッチ要否/恒久は別途)

ポイントは、完了連絡の前に『パッチ要否』を挟むこと。

復旧しただけで「過去分が作られていない」なら、結局後続が止まります。

データパッチ要否の判断は、ここだけ見ればいい

要否精査の観点はシンプルに2択です。

  • ジョブ復旧後に 過去分もまとめて処理される仕様 → パッチ不要
  • ジョブ復旧後に 当日分のみ処理される仕様 → 過去分はパッチ要

この仕様確認を、会議でまず合意する。

(ここが曖昧だと、あとで揉めます)

恒久(G2)は「Cron」より先に“見える化”が本体

相手からは「Cron式にすれば無期限化できる」という提案が出ていました。

無期限化自体は賛成。ただし、Cronは便利なぶん運用事故が起きやすい。

だから提案はこう落ち着きました。

  • Cronへ移行する(相手の狙いに乗る)
  • ただし 段階的に移行する(設定ミスの影響が大きいから)
  • そして ジョブ台帳(一覧)+確認手順+変更手順(戻し方) をセットで整備する

結局、Cronそのものより『運用の見える化』が本体でした。

今日の学び:現場は「技術」より「ゴール定義」で助かる

ジョブ復旧は技術の話に見えます。

でも本当に効いたのは、次の2つでした。

  • まず『今日のゴール』を固定する(復旧まで)
  • 恒久は、運用の見える化までセットでやる

この2つで、議論が前に進み、関係者間のストレスも減りました。

まとめ(次に同じことが起きたら)

次回、同じように「ジョブ止まった」「無期限化しよう」が同時に来たら、

  1. 今日のゴール=稼働復旧(完了条件まで)
  2. データパッチ要否をT3とT4の間で確定
  3. 恒久はCronだけじゃなく“見える化”をセットで出す

この順番でやれば、迷子になりにくいです。

問い:あなたの現場でも、「復旧」と「恒久」が同じ会議・同じリストで混ざって、結局「今日の完了条件」が曖昧になってないですか?

参考:Apex スケジューラー(Salesforce公式)

セルフチェック(3行)

  1. テンプレ順守(外部リンク1つ/問い直後に配置/内部リンク前)
  2. 感情は1つだけ(ゴールが溶けて迷子になる)
  3. 体験ベースで一般論に逃げていない

次に読む(内部リンク)

恒久(G2)の進め方:『エッセンシャル思考』で“やらないこと”を決めて、復旧と混ぜない
おすすめの記事