深入探索 Salesforce 中的定时任务与平台事件
1. 定时 Apex 类的调度基础
在 Salesforce 中,我们可以通过实现 Schedulable
接口来定义可调度的 Apex 类。例如下面的代码,在 execute
方法中输出方法执行的实际时间:
public void execute(SchedulableContext SC) {
System.debug('I was executed at ' + Datetime.now());
}
这种方式是调度 Apex 类运行的最简单方法,但它限制为每天只能执行一次,且必须在整点执行。比如,不能选择 09:30 作为开始时间。
2. 使用 System.schedule 方法
如果我们需要对开始时间有更多控制,或者希望以编程方式调度任务,就需要使用 System.schedule
方法。该方法使用 CRON 表达式来定义作业运行的日期和时间,它接受三个参数:
- 作业运行的名称
- 表示作业应运行的日期和时间的 CRON 表达式
- 要运行的 Apex 类的名称,该类必须实现 Schedulable
接口
CRON 表达式遵循基于 UNIX 系统的标准 CRON 约定,其格式为:
Seconds Minutes Hours Day_of_Month Month Day_of_Week Year_O