Salesfoce Queueable & Future

本文介绍了Salesforce中的Queueable和Future两种异步处理方式。Queueable提供了作业队列和监控,限制更高,结果更可靠;而Future是独立线程,允许提高部分限制,但不保证执行结果,适用于避免DML和CallOut操作混合。文章通过案例说明了两者的使用,并给出了最佳实践建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


Salesforce并没有提供直接的Thread管理(平台安全和稳定大于山哈)。但是提供了几种异步或者说不在同一Transaction的内置方式:Schedule、Batchable、Queueable和Future Method。在此前的篇幅中有聊过Schedule类似于JAVA中的Timer,是一种定时调度;Batchable是占用长时间去运行批量数据。那么Queueable和Future是我们在程序中更频繁使用的一种异步方式。

介绍


  • Queueable:可以控制Apex异步执行进度,并且可以将作业增加到队列中并实施监控,同时可以在运行期间部分限制上限比一般Apex Class要高。相对于Future方式而言,更可靠(保障结果输出,在调用后不会delay)
  • Future:一种异步调用方式,有自己的线程不和主线程混用。可以在运行期间提高部分限制上限(默认与一般Apex Class相同)。通常使用场景为避免DML操作和CallOut操作混合在一起(会抛出DML Error)。需要说明的是Future方式并不保证运行结果(调用后可能delay),Future一旦执行后就脱离主线程进入到自己的线程(数据不共享),不提供管控的方式。
总体而言:Queueable和Future是非常类似的,但是又增强了部分功能:提供管理和监控、实施链式作业和参数不同。Future方式的参数只允许为基础类型(例如String,Boolean等),object无法作为参数;Queueable可以使用object作为参数(准确的讲是在执行时允许object进入,这个位置不太好说)。

案例说明

  • Queueable
    public class AsyncExecutionExamp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值