1.Batch Apex
Batch Apex用于运行超出正常处理限制的大型作业(如数千、数百万条记录)。
使用Batch Apex,您可以批量异步处理记录,以保持在平台限制内。
如果您有很多记录要处理,例如数据清理或归档,Batch Apex可能是您最好的解决方案。
下面是Batch Apex在引擎盖下的工作原理:
假设您希望使用Batch Apex处理100万条记录。
对于正在处理的每批记录,将调用batch类的执行逻辑一次。
每次调用批处理类时,作业都被放置在Apex作业队列中,并作为离散事务执行。
此功能有两个非常好的优点:
每个事务都从一组新的调控器限制开始,这使得确保代码保持在调控器执行限制内变得更加容易。
如果一个批处理未能成功处理,则不会回滚所有其他成功的批处理事务。
2.Batch Apex语法
要编写Batch Apex类,您的类必须实现Database.Batchable接口,并包括以下三种方法:
start:用于收集要传递给接口方法execute进行处理的记录或对象。
此方法在批处理Apex作业开始时调用一次,并返回Database.QueryLocator对象或包含传递给作业的记录或对象的Iterable。
大多数情况下,QueryLocator通过简单的SOQL查询来生成批处理作业中的对象范围。
但是,如果您需要在传递给execute方法之前执行一些操作,比如循环API调用的结果或预处理记录,那么您可能需要查看参考资料部分中的自定义迭代器链接。
使用QueryLocator对象,可以绕过S