How to Schedule Queueable Apex (2024) (2024)

Queueable Apex is one of four asynchronous Apex interface classes.

Released by Salesforce in 2015, it combines the simplicity of Future Methods with the power of Batch Apex. As with all asynchronous methods, Queueable Apex runs in the background, in its own thread, at a later time.

Queueable Apex classes have the ability to:

  1. Start a long-running operation and get an ID for it
  2. Pass complex data types like sObjects to a job
  3. Chain jobs in a sequence

Unlike other classes, Queueable Apex classes is an interface that allows developers to add jobs to the queue and monitor them. Each queued job runs when an Asynchronous Apex Job slot becomes available.


Benefits of an Interface

One benefit of using an interface is that some governor limits are higher than synchronous Apex, such as heap size limits. However, keep in mind that you can add only up to 50 jobs within a single transaction.

Another huge benefit of Queueable Apex is the ability to chain jobs in a sequence. You can chain one queueable job to another by starting the second job from a running job.

If you are chaining Queueable jobs (i.e., a Queueable job enqueues another Queueable job during its execution), Salesforce allows only one additional job to be enqueued in this way. This is a safeguard to prevent excessive chaining, which could potentially lead to resource hogging and other issues. If you try to enqueue a second Queueable job within an already executing Queueable job, you would hit this limit.


Can You Schedule Queueable Apex?

The short answer is “no.” You cannot schedule Queueable Apex directly. If you want any delay on your job, it must follow the Scheduled Apex route.

However, there are several workarounds which I will explain next.

How to Schedule Queueable Apex (2024) (1)

Workarounds for Scheduling a Queueable Class in Salesforce

Scheduling a Queueable class involves the implementation of multiple interfaces. To explain three different workarounds, we enlisted the help of Brian Fear, Salesforce MVP, ranked number one on the Salesforce Stack Exchange.

How to Schedule Queueable Apex (2024) (2)
Source: Brian Fear

Just adding a few lines of code makes a Queueable class available in both the user interface for scheduling, as well as System.scheduleJob.

How to Schedule Queueable Apex (2024) (3)
Source: Brian Fear

As shown in Workaround #2, we can also schedule a Queueable class dynamically for use in a Scheduled Flow or Scheduled Path.

How to Schedule Queueable Apex (2024) (4)
Source: Brian Fear

In Workaround #3, we provide a way to pass in additional parameters and use the Callable interface. This isn’t compatible with the user interface for scheduling Apex, but would be accessible to flows.

How to Schedule Queueable Apex (2024) (5)
Source: Brian Fear

In Step 2 of Workaround #3, we pass in arbitrary parameters to an arbitrary class that supports Callable and Queueable.

Curious how LeanData eliminates the need for Apex code?

Watch a 100-Second Demo Here

Watch Demo


What Other Types of Scheduled Functions Are There in Salesforce?

There are three other types of scheduled functions (aka asynchronous Apex) in Salesforce: Scheduled Apex, Batch Apex, and Future Methods. As with Queueable Apex, each type has its own unique benefits and use cases.

Scheduled Apex

Perfect for daily, weekly, or monthly tasks, Scheduled Apex only runs on the records you want, when you want. This function is triggered by a specific schedule and not by user actions.

Batch Apex

Due for a clean up? Batch Apex is best for cleansing or archiving a large quantity of records that would exceed normal processing limits. The benefits of Batch Apex are that each batch class is run as its own transaction in the queue with its own governor execution limits. Plus, if one batch fails to process, it does not impact other batch transactions.

Batch Apex Capabilities:

  • 200 SOQL query records per cycle
  • 50,000,000 SOQL queries can be retrieved
  • 12 MB heap size

Trailhead recommends that you only use Batch Apex if you have more than one batch of records. If you are not running more than one batch, Queueable Apex is the better option.

Future Methods

Often used for a web service callout from an Apex trigger, Future Methods have the benefit of high governor and execution limits without blocking users from performing other operations. Future Methods are the best option when you need to isolate DML operations on different sObject types to prevent the mixed DML error.

It’s important to note that Future Methods can’t take standard or custom objects as arguments because the sObject might change between the time you call the method and the time it executes. This may cause the future method to overwrite old sObject values. However, some developers have been using this workaround.

It is best practice to avoid adding large numbers of Future Methods to the asynchronous queue. When more than 2,000 unprocessed requests from a single organization are in the queue, any additional requests from the same organization will be delayed until the queue handles requests from other organizations.

How to Schedule Queueable Apex (2024) (6)

How Do You Schedule an Apex Job?

To schedule an Apex job other than Queueable, you first need to implement the Schedulable interface for the particular Apex class. Then, you have two options: one, create the schedule using the Schedule Apex page in the user interface or two, schedule the Apex job through the developer console using system.schedule method.

Option 1 : Using the Schedule Apex Page

  • (Salesforce Classic) From Setup, enter Apex Classes in the Quick Find box, select Apex Classes, and then click Schedule Apex.
  • (Salesforce Lightning) Navigate to Setup, select Custom Code, select Apex Classes, then click on the “Schedule Apex” button
  • Select the class that you want to schedule.
  • Determine how often the Apex class is to run: daily, weekly, monthly, etc.
  • Enter the start and end dates for the Apex scheduled class. Note: if you specify a single day, the job only runs once.
  • Enter a preferred start time. The exact time the job starts will depend on the availability of an Asynchronous Apex Job slot.
  • Click Save.

Option 2: System.schedule

The System.schedule() approach takes three parameters:

  1. Name of the job.
  2. An expression that is used to represent the time and date of the operation.
  3. The object of the class which you want to execute.

Example:

MySchedulableClass sched = new MySchedulableClass();

String cronExp = ‘0 30 8 1 * * *’; // 8:30am every 1st day of the month

String jobID = System.schedule(‘Something descriptive’, cronExp, sched);

Regardless of the scheduling approach you choose, once the job is complete, you can see further details on the Apex Jobs page. For example, you can check whether it completed or failed, how long it took to process, or the number of records processed.

Keep in mind that you can only have 100 scheduled Apex jobs at one time. In addition, the maximum number for all Apex executions in a 24-hour period is 250,000 or the number of user licenses in your organization multiplied by 200, whichever is greater.

It’s also important to note that asynchronous processing has lower priority than real-time interaction. To protect itself and create a fair environment for everyone, the queuing framework monitors resources like server memory and CPU usage and will limit asynchronous processing when thresholds are exceeded.

Basically, there’s no guarantee on processing time.


Turning a No into a Yes

When basic Salesforce automation tools fall short, Apex code helps organizations manage complex business functionalities. While there are four Apex interfaces, only one of them allows you to run at a particular period of time. In addition, while Queueable Apex cannot be scheduled through the user interface, creative developers can find plenty of workarounds to solve this common dilemma.

Tags

  • information technology
  • IT
  • Salesforce
  • Salesforce Queueable Apex
  • SFDC
  • SFDC Admin
How to Schedule Queueable Apex (2024) (2024)

References

Top Articles
Sourdough chocolate cruffin - recipe Sourdough&Olives
Kit Kat Reindeer Christmas Snacks Recipe
Www.paystubportal.com/7-11 Login
Koopa Wrapper 1 Point 0
No Hard Feelings Showtimes Near Metropolitan Fiesta 5 Theatre
RuneScape guide: Capsarius soul farming made easy
Unlocking the Enigmatic Tonicamille: A Journey from Small Town to Social Media Stardom
His Lost Lycan Luna Chapter 5
Waive Upgrade Fee
Remnant Graveyard Elf
Nexus Crossword Puzzle Solver
Everything You Need to Know About Holly by Stephen King
Shreveport Active 911
Craigslist Free Stuff Merced Ca
Bank Of America Financial Center Irvington Photos
Keurig Refillable Pods Walmart
Craigslist Pinellas County Rentals
Weepinbell Gen 3 Learnset
Evil Dead Rise - Everything You Need To Know
Loft Stores Near Me
Healthier Homes | Coronavirus Protocol | Stanley Steemer - Stanley Steemer | The Steem Team
Euro Style Scrub Caps
Aerocareusa Hmebillpay Com
Klsports Complex Belmont Photos
Medline Industries, LP hiring Warehouse Operator - Salt Lake City in Salt Lake City, UT | LinkedIn
Angel Haynes Dropbox
Tactical Masters Price Guide
Wbap Iheart
The Procurement Acronyms And Abbreviations That You Need To Know Short Forms Used In Procurement
Sacramento Craigslist Cars And Trucks - By Owner
Craigslist Scottsdale Arizona Cars
Parent Management Training (PMT) Worksheet | HappierTHERAPY
Ripsi Terzian Instagram
Scioto Post News
One Credit Songs On Touchtunes 2022
Oriellys Tooele
Tryst Houston Tx
Gateway Bible Passage Lookup
Henry Ford’s Greatest Achievements and Inventions - World History Edu
The Realreal Temporary Closure
Emily Browning Fansite
Natasha Tosini Bikini
Contico Tuff Box Replacement Locks
German American Bank Owenton Ky
Diamond Desires Nyc
Deviantart Rwby
Gameplay Clarkston
Escape From Tarkov Supply Plans Therapist Quest Guide
Selly Medaline
Guidance | GreenStar™ 3 2630 Display
Latest Posts
Article information

Author: Kerri Lueilwitz

Last Updated:

Views: 6383

Rating: 4.7 / 5 (47 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Kerri Lueilwitz

Birthday: 1992-10-31

Address: Suite 878 3699 Chantelle Roads, Colebury, NC 68599

Phone: +6111989609516

Job: Chief Farming Manager

Hobby: Mycology, Stone skipping, Dowsing, Whittling, Taxidermy, Sand art, Roller skating

Introduction: My name is Kerri Lueilwitz, I am a courageous, gentle, quaint, thankful, outstanding, brave, vast person who loves writing and wants to share my knowledge and understanding with you.