Use the Apex scheduler and the Schedulable interface if you have specific Apex classes that you want to run on a regular basis, or to run a batch Apex job using the Salesforce user interface.

The scheduler runs as system—all classes are executed, whether or not the user has permission to execute the class.

Important: Salesforce schedules the class for execution at the specified time. Actual execution may be delayed based on service availability.

To schedule jobs using the Apex scheduler:

  1. Implement the Schedulable interface in an Apex class that instantiates the class you want to run.
  2. From Setup, enter Apex Classes in the Quick Find box, select Apex Classes, and then click Schedule Apex.
  3. Specify the name of a class that you want to schedule.
  4. Specify how often the Apex class is to run.
  5. For Weekly—specify one or more days of the week the job is to run (such as Monday and Wednesday).
  6. For Monthly—specify either the date the job is to run or the day (such as the second Saturday of every month.)
  7. Specify the start and end dates for the Apex scheduled class. If you specify a single day, the job only runs once.
  8. Specify a preferred start time. The exact time the job starts depends on service availability.
  9. Click Save.

Note: You can only have 100 active or scheduled jobs concurrently.

Alternatively, you can call the System.scheduleBatch method to schedule the batch job to run once at a future time.

Once the job has been completed, you can see specifics about the job (such as whether it passed or failed, how long it took to process, the number of records process, and so on).


global class ClassName implements Schedulable


     global void execute(SchedulableContext sc)


     BatchClass b = new BatchClass(); // Your batch class




Our Recent Blog

Share This Post