こんにちは、にいるです。
今回は、「Apexバッチのスケジューリング設定の方法」について説明したいと思います。
・【ヘルプ】Apex ジョブのスケジュール
・【ヘルプ】Apex スケジューラ
1.Apexバッチとは
Apexバッチとは、Apexの一括処理を指します。
メリットとして、非同期での実行になるのでガバナ制限が緩和されるため、より多くの処理を実行できるようになります。
バッチとスケジューラを分けている場合は、スケジューラ実行→スケジューラからバッチ呼び出し→バッチ実行という処理の流れになっています。
スケジューラで実行時間を設定して、バッチに処理する内容を書くという形ですね。
2.Apexバッチのスケジューリング設定の方法
続いて、Apexバッチのスケジューリング設定の方法を見ていきたいと思います。
2-1.[設定]から設定
[設定]→[Apexクラス]→[Apexをスケジュール]ボタンをクリックします。そして、ジョブ名や実行するApexクラス、実行頻度、実行時間を設定して保存を押します。
登録したジョブは[Apex ジョブ]の一覧で確認することができます。
なんとも不便なお話かなと。。。
2-2.Apexコードから実行
続いてApexからのスケジュール設定です。
開発者の方であれば、こちらの方法は必ず覚えましょう!
こちらであれば分・秒単位でスケジュール設定が可能です!
1時間に1回しか実行できないとなると、テストに時間がかかりすぎて、日が暮れます。。。
その実行用コードがこれです!
1 2 |
//バッチ匿名実行用コード System.schedule('スケジューラ名','0 0 * * * ?', new スケジューラ名()); |
上記を開発者コンソールで実行すれば毎時0分に実行されます。
パラメータの持ち方は下記のようになっています。
‘0 0 * * * ?’ = ‘秒 分 時 日 月’
テストでは即時実行するため、二番目の0を実行したい時間に書き換えることが多いと思いますので、この内容は覚えておきましょう!
3.スケジュールの削除
設定したスケジュールジョブは[設定]→[スケジュール済みジョブ]から削除することができます。
4.まとめ
いかがでしたでしょうか。
Apexバッチのスケジューリング方法はUI画面からの操作は正直しんどいです笑
匿名実行するコードも簡単なので、覚えやすいですね。
バッチのスケジュールテストするときは、開発者コンソールの匿名実行から実行しましょう。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!