0

Apexスケジューラを使用してバッチジョブを実行することを検討しています。トラフィックが少ない午前 3 時など、いつでも実行できますが、いくつかの「とんでもない」シナリオを予想しようとしています。これらの質問に答えるのを手伝ってくれませんか?

設定:

ユーザーがテリトリーを変更すると、10 万件のレコードが更新される可能性があります。

質問:

  1. ジョブが終了しない現実的な原因となるシナリオにはどのようなものがありますか? ユーザーが実行中のバッチの 1 つにある連絡先を編集している場合のシナリオを考えました。

  2. 終了しないジョブを処理するための良い方法は何ですか? このバッチ ジョブの 2 時間後に別のバッチ ジョブをスケジュールすることを考えていましたが、上司がそれを気に入っているようには見えません。おそらくfinish()メソッドで何かをすることを考えましたが、正確にはわかりません。

4

1 に答える 1

0
  1. バッチにエラーがあると、そのバッチが正しく終了しなくなります。
  2. すべてを処理したことを確認するために、何らかのチェックを行うことをお勧めします。私が通常バッチに使用するのは、処理が必要なレコードとそうでないレコードを区別するために何らかの方法でマークを付けることです。バッチの処理が終了したら、レコードを処理済みとしてマークします。その後、まだ処理が必要なレコードがあるかどうかを finish() メソッドで確認し、バッチを再度実行するようにスケジュールを変更できます。
于 2012-06-18T01:13:49.380 に答える