Queueable Apex — Overview & Basic Usage

DEX455 - 异步 Apex 完全指南:Queueable、Scheduled、Batch 与 Future 方法

📄 第 237 页 🎬 视频课程

课程章节介绍

同学们,今天我们来讲讲 Salesforce 中一个很实用的功能——可队列化的 Apex,也常被称为 Queueable Apex。你可以把它看作是未来方法(future method)的升级版推荐替代方案。以前我们常用未来方法来异步处理,但现在更推荐用这个。 那它怎么用呢?很简单,你实现一个叫 `Queueable` 的接口,然后通过 `System.enableJob()` 方法把你的作业提交到队列里。这个方法会返回一个作业 ID,有了这个 ID,你就可以很方便地监控作业状态了——既可以通过写 SOQL 查询 `AsyncApexJob` 对象,也可以直接在设置里的“Apex 作业”页面查看。 和未来方法相比,Queueable 有几个明显的好处。首先,它有一个作业 ID,能让你轻松追踪作业进度。其次,它支持复杂的成员变量,比如 sObject、自定义 Apex 类型,而未来方法只能传递基本类型。另外,它还支持作业链,也就是一个作业完成后,可以自动启动下一个作业,这样就能把复杂的异步流程串联起来。 而且,Queueable 的一些调控器限制比同步 Apex 更宽松,比如堆大小限制会更高一些。还有一个重要的行为:如果父事务回滚了,任何排队的作业都不会被处理,这保证了数据的一致性。 最后,要注意一点:当你把 Queueable 作业序列化时,声明为 `transient`(瞬态)的变量会被忽略,不会保存状态。所以如果你有不想被持久化的数据,记得标记成瞬态。 总结一下,Queueable Apex 功能更强大、更灵活,是处理异步任务的首选方式。好了,今天就讲到这里,下节课我们接着深入。

关键词

Apex Salesforce Developer Guide