echarts怎么处理大量数据_Apex Batch和Apex Scheduler定时批处理大量数据

我们在处理大规模数据时,经常会发生各种限制。但是使用Apex Batch会将需要处理的数据,分割开来执行。

也就是进行异步处理数据,而不会超出平台的限制。

同步和异步的概念:

生活中,同步就是表示两件事请同时做,比如一边听歌一边学习写作业。这两件事是同时进行。

生活中,异步就是表示两件事请有先后顺序,只能是先听歌,听完歌之后再学习写作业。这两件事是有顺序的进行。

软件程序中,完全是相反的,也就是同步是有顺序经进行,异步是同时进行。

同步:每个程序处理都是有顺序的,不能跨越执行,比如用户必须先注册,然后才可以登录,这个流程不能变。

异步:程序只是发送调用的指令,不用等待被调用的方法完全执行完,而是会继续执行下一个程序。就像打开一个页面,是边加载边显示在页面上。

同步是需要等待,异步不需要等待。

看一下英文表示,同步:Synchronize,异步:Asynchronous

批处理Apex语法

实现 :Database.Batchable 接口

和三个方法:

start()

global (Database.QueryLocator | Iterable) start(Database.BatchableContext bc) {}

Apex Batch开始,在Apex批处理作业的开始处被调用一次,收集并返回处理的对象或记录。

使用QueryLocator对象时,将忽略SOQL查询检索到的记录总数的限制条件限制,并且最多可以查询5000万条记录。

使用Iterable对象时,SOQL查询检索的记录总数的限制条件限制仍然适用。

execute()

global void execute(Database.BatchableContext BC, list

){}

接收start()传过来的对象或记录,默认批处理大小为200条记录。200条执行一次。

批处理记录开始它们倾向于按照从方法中接收到的顺序执行。但是,执行记录批处理的顺序取决于各种因素。无法保证执行顺序。

finish ()

global void finish(Database.BatchableContext BC){}

用于执行后处理操作(例如发送邮件,日志登录,调用其他Batch等),并且在处理完所有批次后调用一次。

批处理Apex类的框架如下:

global class MyBatchClass implements Database.Batchable<sObject> {
    
global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContext bc) {
// collect the batches of records or objects to be passed to execute
}
global void execute(Database.BatchableContext bc, List<P> records){
// process each batch of records
}
global void finish(Database.BatchableContext bc){
// execute any post-processing operations
}
}

调用批处理类

MyBatchClass myBatchObject = new MyBatchClass();

Id batchId = Database.executeBatch(myBatchObject,200);

每次调用Batch Apex时,都会创建一个AsyncApexJob记录,以便跟踪工作进度。可以通过SOQL查看进度并管理Apex作业队列中的作业。

AsyncApexJob job = [SELECT Id, Status, JobItemsProcessed, TotalJobItems, NumberOfErrors FROM AsyncApexJob WHERE ID = :batchId ];

下面看一个具体的例子,

当环境中有许多操作在一个对象上时,例如PB,Flow,Trigger等,我们对这个对象进行数据移行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值