Salesforce System.AbortJob不工作?

Salesforce System.AbortJob不工作?,salesforce,apex,Salesforce,Apex,我正在试图弄清楚如何让System.AbortJob()实际工作。我的假设(可能是错误的)是,当我将当前作业ID传递给System.AbortJob()时,作业将立即停止并中止。这是我的测试,它不起作用,因为我看到System.debug()出现在我的日志中 从“执行匿名”执行: queueableTest tst = new queueableTest(); System.enqueueJob(tst); 可排队类: public class queueableTest implements

我正在试图弄清楚如何让System.AbortJob()实际工作。我的假设(可能是错误的)是,当我将当前作业ID传递给System.AbortJob()时,作业将立即停止并中止。这是我的测试,它不起作用,因为我看到System.debug()出现在我的日志中

从“执行匿名”执行:

queueableTest tst = new queueableTest();
System.enqueueJob(tst);
可排队类:

public class queueableTest implements Queueable {

    public static void execute(QueueableContext Context)
    {
        ID jobID = Context.getJobId();
        System.AbortJob(jobID);
        shouldntExecute();
    }


    public static void shouldntExecute()
    {
        System.debug('Why is this executing?');        
    }

}
非常感谢任何帮助/反馈

System.abortJob()调用只有在其执行上下文完成后才会生效。由于您正在从要中止的同一上下文中调用abortJob,因此当它生效时,您的代码已经完成执行,这使得
System.abortJob()
调用不相关

如果要中止当前作业,需要使用
return
System.assert(false,“中止”)在第一种情况下,作业将以“完成”状态终止,在第二种情况下以“失败”状态终止。抛出异常也会产生相同的结果