Loading
Salesforce now sends email only from verified domains. Read More
Scalability
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          ApexGuru Antipattern: Busy Loop Delay

          ApexGuru Antipattern: Busy Loop Delay

          Busy loops that introduce a delay aren’t efficient and lead to performance issues. They waste CPU resources due to continuous loop execution. Governor limit breaches cause transaction failures. For delayed execution, use Salesforce alternatives like scheduling systems in Apex. If the delay is due to an async job, use System.enqueueJob with a delay parameter.

          Scope

          Detection only

          Detection Example

          Apex
          public class JobScheduler {
              public void scheduleJobWithDelay() {
                  Integer delayTime = 10; // Delay in seconds
                  DateTime startTime = System.now();        
                  // Busy loop to create a delay
                  while (System.now() < startTime.addSeconds(delayTime)) {
                      // Do nothing (busy wait)
                  }     
                  // Enqueue the Queueable job after the delay
                  ID jobId = System.enqueueJob(new MyQueueableJob());
              }
          }
          
           
          Loading
          Salesforce Help | Article