Apex offers multiple ways for running your Apex code asynchronously. Choose the
asynchronous Apex feature that best suits your needs.
This table lists the asynchronous Apex features and when to use each.
| Future Methods |
- When you have a long-running method and need to prevent delaying an Apex
transaction
- When you make callouts to external Web services
- To segregate DML operations and bypass the mixed save DML error
|
| Queueable Apex |
- To start a long-running operation and get an ID for it
- To pass complex types to a job
- To chain jobs
|
| Batch Apex |
- For long-running jobs with large data volumes that need to be performed in batches, such
as database maintenance jobs
- For jobs that need larger query results than regular transactions allow
|
| Scheduled Apex |
- To schedule an Apex class to run on a specific schedule
|