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

Popular posts from this blog

How to get sessionid and salesforce org base url in salesforce

salesforce - sf - sfdx - cli - commands

Multi currency in Salesforce - Revenue Cloud Advance - Revenue Lifecycle Management