Benefits of batch apex
The execution logic of the batch class is called once for each batch of records. The default batch size is 200 records. You can also specify
a custom batch size. Furthermore, each batch execution is considered a discrete transaction. With each new batch of records, a new set
of governor limits is in effect. In this way, it’s easier to ensure that your code stays within the governor execution limits. Another benefit
of discrete batch transactions is to allow for partial processing of a batch of records in case one batch fails to process successfully, all
other batch transactions aren’t affected and aren’t rolled back if they were processed successfully.
Step 2: Write the Schedulable class
Now, We have the batch class ready and it has to be in a schedulable context in-order to schedule the batch. You can learn more about schedulable apex here
Example of a Scheduled Apex
Step 3: Schedule the class by executing anonymous
Finally now we can schedule the batch class, there are two ways by which we can schedule the batch class
Code to be executed
If you want to run it as frequent as 15,30 or N mins .....
The execution logic of the batch class is called once for each batch of records. The default batch size is 200 records. You can also specify
a custom batch size. Furthermore, each batch execution is considered a discrete transaction. With each new batch of records, a new set
of governor limits is in effect. In this way, it’s easier to ensure that your code stays within the governor execution limits. Another benefit
of discrete batch transactions is to allow for partial processing of a batch of records in case one batch fails to process successfully, all
other batch transactions aren’t affected and aren’t rolled back if they were processed successfully.
This
is a use case that we all come across very often, Schedule a batch class every
hour to clean up data or to send out batch emails to case team members (Which
I’ll blog about later).
There are three main steps involved in this
There are three main steps involved in this
1.
Write
a Batch class with the required logic
2.
Write
a Scheduled Apex which calls the above Batch Class
Step
1: Write the batch class
Batch apex gives us the advantage to run jobs that might require a lot more that the usual governor limit contexts, example Batch job are made to perform common UPSERT operation on a scheduled basis. The Batch apex, can be used to conveniently perform time to time task and some real complex job ranging from data cleansing, archiving the data to the other quality improvements
Learn more about Batch Apex here.
Batch apex gives us the advantage to run jobs that might require a lot more that the usual governor limit contexts, example Batch job are made to perform common UPSERT operation on a scheduled basis. The Batch apex, can be used to conveniently perform time to time task and some real complex job ranging from data cleansing, archiving the data to the other quality improvements
Learn more about Batch Apex here.
Example of a batch class
global class ExampleBatchClass implements
Database.Batchable<sObject>
{
global ExampleBatchClass(){
// Batch Constructor
}
// Start Method
global Database.QueryLocator
start(Database.BatchableContext BC){
return
Database.getQueryLocator(query);
}
// Execute Logic
global void
execute(Database.BatchableContext BC, List<sObject> scope){
// Logic to be
Executed batch wise
}
global void
finish(Database.BatchableContext BC){
}
}
Step 2: Write the Schedulable class
Now, We have the batch class ready and it has to be in a schedulable context in-order to schedule the batch. You can learn more about schedulable apex here
Example of a Scheduled Apex
global class scheduledBatchable
implements Schedulable{
global void execute(SchedulableContext
sc) {
// Implement any logic to
be scheduled
ExampleBatchClass b = new
ExampleBatchClass();
//Parameters of
ExecuteBatch(context,BatchSize)
database.executebatch(b,10);
}
}
Step 3: Schedule the class by executing anonymous
Finally now we can schedule the batch class, there are two ways by which we can schedule the batch class
1.
From
Setup—> Apex Classes –> Schedule Apex : but, here the minimum is one day/
24 hours
2.
By
executing anonymous code from either developer console or apex, here the
minimum is 1 hour
Code to be executed
// Cron EXP for hourly schedule
String CRON_EXP = '0 0 * * *
?';
SheduledBatchable sch = new
scheduledBatchable();
system.schedule('Hourly Example
Batch Schedule job', CRON_EXP, sch);
If you want to run it as frequent as 15,30 or N mins .....
System.schedule('Job1', '0 * * * * ?', new SchJob());
System.schedule('Job2', '0 15 * * * ?', new SchJob());
System.schedule('Job3', '0 30 * * * ?', new SchJob());
System.schedule('Job4', '0 45 * * * ?', new SchJob());
No comments:
Post a Comment