Scheduler - apex - salesforce - implements Schedulable
For scheduling every 30minutes code will be like below :
public class SNO_GVC_DRT_ProcesseBatchScheduler implements Schedulable {
//Scheduler
public static final Integer BATCH_SIZE = 10;
public void execute(SchedulableContext sc) {
SNO_GVC_DRT_ProcesseBatch deletegroup = new SNO_GVC_DRT_ProcesseBatch();
Database.executebatch(deletegroup,BATCH_SIZE);
Datetime currentTime = System.now().addMinutes(30);
// prepare schedule string / settings
String scheduleString = String.format(
'{0} {1} {2} {3} {4} {5} {6}',
new List<String>{
String.valueOf(currentTime.second()),
String.valueOf(currentTime.minute()),
String.valueOf(currentTime.hour()),
String.valueOf(currentTime.day()),
String.valueOf(currentTime.month()),
'?',
String.valueOf(currentTime.year())
}
);
// create new job
String hour = String.valueOf(Datetime.now().hour());
String min = String.valueOf(Datetime.now().minute()); // + 10
String ss = String.valueOf(Datetime.now().second());
//parse to cron expression
String nextFireTime = ss + ' ' + min + ' ' + hour + ' * * ?';//
Id previousJobId = sc.getTriggerId();
System.abortJob(previousJobId);
Id JobId = system.schedule('SNO_GVC_DRT_ProcesseBatchScheduler_' + nextFireTime, scheduleString, new SNO_GVC_DRT_ProcesseBatchScheduler());//nextFireTime//scheduleString
}
}
For scheduling every Hour code will be like below :
public class SNO_GVC_DRT_ProcesseBatchScheduler implements Schedulable {
//Scheduler
public static final Integer BATCH_SIZE = 10;
public void execute(SchedulableContext sc) {
SNO_GVC_DRT_ProcesseBatch deletegroup = new SNO_GVC_DRT_ProcesseBatch();
Database.executebatch(deletegroup,BATCH_SIZE);
Datetime currentTime = System.now().addHours(1);
// prepare schedule string / settings
String scheduleString = String.format(
'{0} {1} {2} {3} {4} {5} {6}',
new List<String>{
String.valueOf(currentTime.second()),
String.valueOf(currentTime.minute()),
String.valueOf(currentTime.hour()),
String.valueOf(currentTime.day()),
String.valueOf(currentTime.month()),
'?',
String.valueOf(currentTime.year())
}
);
// create new job
String hour = String.valueOf(Datetime.now().hour());
String min = String.valueOf(Datetime.now().minute()); // + 10
String ss = String.valueOf(Datetime.now().second());
//parse to cron expression
String nextFireTime = ss + ' ' + min + ' ' + hour + ' * * ?';//
Id previousJobId = sc.getTriggerId();
System.abortJob(previousJobId);
Id JobId = system.schedule('SNO_GVC_DRT_ProcesseBatchScheduler_' + nextFireTime, scheduleString, new SNO_GVC_DRT_ProcesseBatchScheduler());//nextFireTime//scheduleString
}
}
Comments
Post a Comment