Skip to main content
1 respuesta
  1. 3 may 2023, 11:00

    @Sonali 

     

    public class BatchScheduler {

        public static void scheduleBatch() {

            Datetime startTime = Datetime.newInstanceGmt(2023, 5, 4, 0, 0, 0); // Set the start time for the first batch

            for (Integer i = 1; i <= 5; i++) {

                MyBatch batch = new MyBatch();

                batch.jobName = 'My Batch Job ⌗' + i;

                batch.query = 'SELECT Id FROM Account LIMIT 200 OFFSET ' + ((i - 1) * 200);

                System.schedule(batch.jobName, getCRONString(startTime), batch);

                startTime = startTime.addMinutes(30); // Schedule the next batch 30 minutes later

            }

        }

        

        private static String getCRONString(Datetime startTime) {

            return startTime.second() + ' ' + startTime.minute() + ' ' + startTime.hour() + ' ' + startTime.day() + ' ' + startTime.month() + ' ? ' + startTime.year();

        }

    }

     

     

    Call the scheduleBatch method to schedule your batch job:

     

    BatchScheduler.scheduleBatch();

     

    This will schedule your batch job to process 1000 records in 5 chunks of size 200, with each chunk being processed 30 minutes after the previous one or you can increase the timer 

     
0/9000