When to use Scheduled Apex jobs
Quite simply, and somewhat obviously, as the name implies, you should use Scheduled Apex whenever you wish to schedule an Apex job you have defined to run at some point in the future, without the need for you as a developer or system administrator to begin the execution or invoke the job at that time. Broadly speaking, there are two types of jobs you will want to schedule: one-off executions and repeating jobs. We will now review both of those use cases.
One-off executions
A one-off execution is any Apex job that you wish to fire once, and only once, throughout the life cycle of the application. Typically, you will want to run this job at a time of day when it is not ideal for you to be available, such as after working hours so that you can update data with no end users on the system.
An example of this type of job is populating a new field on an object en masse when it cannot be done via a data loader. If we have a complex process to populate...