Queueable Apex Template

Use Case: Basic Queueable for async processing

Template:

/**
 * Queueable class for [description]
 * Processes [what] asynchronously
 */
public class [ClassName]Queueable implements Queueable {
    
    // Add instance variables for parameters
    private [Type] parameter;
    
    /**
     * Constructor to accept parameters
     * @param parameter Description
     */
    public [ClassName]Queueable([Type] parameter) {
        this.parameter = parameter;
    }
    
    /**
     * Execute method - performs async work
     * @param context QueueableContext
     */
    public void execute(QueueableContext context) {
        try {
            // Perform async work
            // Example: Query records, process data, perform callouts
            
            // Query records if needed
            List<[ObjectName]> records = [
                SELECT Id, [Field1], [Field2]
                FROM [ObjectName]
                WHERE [Conditions]
                WITH SECURITY_ENFORCED
            ];
            
            // Process records
            for ([ObjectName] record : records) {
                // Process each record
            }
            
            // Perform DML if needed
            // update records;
            
        } catch (Exception e) {
            // Log error
            System.debug('ERROR: Queueable job failed: ' + e.getMessage());
            throw e;
        }
    }
}

Usage:

// Enqueue job
[ClassName]Queueable job = new [ClassName]Queueable(parameter);
Id jobId = System.enqueueJob(job);

For Chained Queueable:

For Queueable with Callouts:

For Retry Logic: