在Salesforce中建立Scheduler的方式有两种
- 在Develop->Apex Classes页面,点击Schedule Apex按钮之后会提供如下的面板。
这个面板虽然能方便的决定Scheduler执行的频率,但是最高频率也只能是一天一次。 - 再有就是使用Apex。在匿名块中使用系统函数设定Scheduler,可以获得更高的频率。
所以,如果想设定一小时执行的Scheduler就必须使用第二种方式。
需要使用的函数为System.schedule();
官方文档对此进行了详细的描述。具体参照下列示例代码。
// Sample 1 hour 1 time System.schedule('My Scheduler','0 0 0/1 * * ?', new MyScheduler());
作为一个成熟的完善的系统,定时器与后台Job是必须的组成部分。
Scheduler就是Linux Cron的强力山寨。
所以System.schedule()中的第二个参数,就等同于Cron表达式(当然,只能算一个子集)。
为什么要把一小时一次单独拎出来,因为,这是Scheduler的最小粒度。
Scheduler表达式的秒位与分位是不支持“/”符号的。
所以,想几分钟执行一次的,放弃吧。