前言
Salesforce开发语言Apex相对于其他编程语言而言较为简单,所涉及内部并不复杂。基于Apex并没有提供线程的管理和使用、单次Transaction的查询数据限制而实际过程中我们需要大批量的数据去执行特定的操作,Salesforce提供了Batchable接口,通过实现Batchable接口实现批量对数据进行CRUD。那么Batchable有哪些特性呢?
Batch相关
- Batchable:Interface,实现该接口可进行Batch操作;
- Stateful:Interface,实现该接口可指定成员变量全局更改和读取;否则变量只能读取初始值;
- BatchableContext:Interface,批处理作业参数类型(包含批处理作业Id),通常是start()和execute()参数;
- QueryLocator:数据集装载;
- executeBatch:Method,Database Namespace指定执行;
- scheduleBatch:Method, System Namespace指定执行;
- AllowsCallouts:Interface,实现该接口后可进行CallOut。
Batchable方法
Batchable具有三个方法:
- start():返回包含记录的Database.queryLocator或者Iterable,并传递到execute();
- 使用Database.queryLocator方式,将跨过SOQL的限制,但是最多返回50,000,000数据;
- 使用Database.queryLocator方式,将跨过SOQL的限制,但是最多返回50,000,000数据;