码迷,mamicode.com
首页 > 其他好文 > 详细

Apex スケジューラを使用したジョブのスケジュール

时间:2019-09-24 17:09:45      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:sel   bsp   doc   false   list   optional   utils   get   指定   

Apex スケジューラを使用すると、Apex クラスの実行を遅らせて、指定した日時に実行できます。

まずクラスに Schedulable インターフェースを実装します。

次に、System.schedule メソッドを使用して、特定の時間に実行されるようにクラスのインスタンスをスケジュールします

このクラスは Schedulable インターフェースを実装し、このインターフェースに含まれるメソッド (execute メソッド) のみを実装する必要があります。

このメソッドのパラメータは SchedulableContext オブジェクトです。クラスがスケジュールされると、スケジュール済みジョブを表す CronTrigger オブジェクトが作成されます。このオブジェクトには、CronTrigger API オブジェクトの ID を返す getTriggerId メソッドがあります。

Schedulable インターフェースを使用してクラスを実装したら、System.Schedule メソッドを使用してこのクラスを実行します。

ユーザにそのクラスの実行権限があるかどうかにかかわらず、すべてのクラスが実行されます。

global class RemindOpptyOwners implements Schedulable {
global void execute(SchedulableContext ctx) {
List<Opportunity> opptys = [SELECT Id, Name, OwnerId, CloseDate
FROM Opportunity
WHERE IsClosed = False AND
CloseDate < TODAY];
// Create a task for each opportunity in the list
TaskUtils.remindOwners(opptys);
}

}

スケジュールに使用する Cron 式 についての詳細

https://developer.salesforce.com/docs/atlas.ja-jp.220.0.apexcode.meta/apexcode/apex_scheduler.htm

RemindOpptyOwners reminder = new RemindOpptyOwners();
// Seconds Minutes Hours Day_of_month Month Day_of_week optional_year
String sch = ‘20 30 8 10 2 ?‘;
String jobID = System.schedule(‘Remind Opp Owners‘, sch, reminder);

 

 

スケジュールに使用する Cron 式 についての詳細

スケジュール済み Apex を使用する場合は、結果をテストする前にスケジュール済みジョブが終了していることを確認する必要があります。

この確認には、System.schedule メソッドの前後に startTest と stopTest を再度使用して、テストを続行する前に処理が終了するようにします。

 

Apex スケジューラを使用したジョブのスケジュール

标签:sel   bsp   doc   false   list   optional   utils   get   指定   

原文地址:https://www.cnblogs.com/dlywang0411/p/11579196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!