我们是否需要编写一个batchable类来安排课程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们是否需要编写一个batchable类来安排课程相关的知识,希望对你有一定的参考价值。

我正在尝试生成报告并将报告作为salesforce中的附件发送到电子邮件。我创建了一个控制器,为csv流创建了一个类和一个电子邮件模板。我想安排上课。当我安排它时,我无法达到结果。能有人帮我实现这个目标吗?我尝试的代码创建了一个visualforce组件,类和一个电子邮件模板。我尝试的代码是每隔5分钟安排一次。但是我收到了一个错误。我们需要为此编写一个batchable类

global class IncrementReport implements Schedulable {

   global void execute(SchedulableContext ctx) {

   System.debug('Entered Cron trigger');

   rptobj__c r = [SELECT Id, Name, reporttrigger__c FROM rptobj__c WHERE Name = 'ThisReport' LIMIT 1];

   r.reporttrigger__c += 1;

   String s = '0 0 * * * ?' ';

   IncrementReport abc = new IncrementReport();

   system.schedule('Report Job', s, abc);

   System.debug('updating trigger to: ' + r.reporttrigger__c);

   update r;

   }
 }
答案

您只在调度程序类中编写逻辑。

global class IncrementReport implements Schedulable {
 global void execute(SchedulableContext ctx) {

        System.debug('Entered Cron trigger');

        rptobj__c r = [SELECT Id, Name, reporttrigger__c FROM rptobj__c WHERE Name = 'ThisReport' LIMIT 1];

        r.reporttrigger__c += 1;


        System.debug('updating trigger to: ' + r.reporttrigger__c);

        update r;

    }
}

然后,可以从Developer Console运行此cron表达式。

    String sch1 = '0 0 * * * ?';
    IncrementReport ir1 = new IncrementReport();
    system.schedule('Every Hour plus 0 min', sch1, ir1);

    String sch2 = '0 5 * * * ?';
    IncrementReport ir2 = new IncrementReport();
    system.schedule('Every Hour plus 5 min', sch2, ir2);

    String sch3 = '0 10 * * * ?';
    IncrementReport ir3 = new IncrementReport();
    system.schedule('Every Hour plus 10 min', sch3, ir3);

    String sch4 = '0 15 * * * ?';
    IncrementReport ir4 = new IncrementReport();
    system.schedule('Every Hour plus 15 min', sch4, ir4);

    // And so on ir5, ir6 .... ir12

由于你想每5分钟运行一次调度程序,你需要system.schedule 12次为12 * 5 = 60分钟= 1小时

您可以查看作业是否正在运行

设置 - >预定作业

以上是关于我们是否需要编写一个batchable类来安排课程的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sumologic 自定义 cron 搜索来安排每 10 分钟一次的搜索

我可以使用函数触发器来安排函数吗? [复制]

《团队-排课系统-设计文档》

是否需要有专用 IP 地址来安装 SSL 证书? [关闭]

在 iOS 10 中安排和处理本地通知

app耗电优化之二 使用电源管理来安排任务