Queueable API
Apex classes QueueableBuilder.cls
, QueueableManager.cls
, and QueueableJob.cls
.
Common Queueable example:
QueueableJob job = new MyQueueableJob();
Async.AsyncResult result = Async.queueable(job)
.priority(5)
.delay(2)
.continueOnJobExecuteFail()
.enqueue();
System.debug('Job enqueued: ' + result.customJobId);
Methods
The following are methods for using Async with Queueable jobs:
asyncOptions(AsyncOptions asyncOptions)
delay(Integer delay)
priority(Integer priority)
continueOnJobEnqueueFail()
continueOnJobExecuteFail()
rollbackOnJobExecuteFail()
asSchedulable()
INIT
queueable
Constructs a new QueueableBuilder instance with the specified queueable job.
Signature
Async queueable(QueueableJob job);
Example
Async.queueable(new MyQueueableJob());
Build
asyncOptions
Sets AsyncOptions for the queueable job. Cannot be used with delay().
Signature
QueueableBuilder asyncOptions(AsyncOptions asyncOptions);
Example
AsyncOptions options = new AsyncOptions();
Async.queueable(new MyQueueableJob())
.asyncOptions(options);
delay
Sets a delay in minutes before the job executes. Cannot be used with asyncOptions().
Signature
QueueableBuilder delay(Integer delay);
Example
Async.queueable(new MyQueueableJob())
.delay(5); // Execute in 5 minutes
priority
Sets the priority for the queueable job. Lower numbers = higher priority.
Signature
QueueableBuilder priority(Integer priority);
Example
Async.queueable(new MyQueueableJob())
.priority(1); // High priority
continueOnJobEnqueueFail
Allows the job chain to continue even if this job fails to enqueue.
Signature
QueueableBuilder continueOnJobEnqueueFail();
Example
Async.queueable(new MyQueueableJob())
.continueOnJobEnqueueFail();
continueOnJobExecuteFail
Allows the job chain to continue even if this job fails during execution.
Signature
QueueableBuilder continueOnJobExecuteFail();
Example
Async.queueable(new MyQueueableJob())
.continueOnJobExecuteFail();
rollbackOnJobExecuteFail
Rolls back any DML operations if this job fails during execution.
Signature
QueueableBuilder rollbackOnJobExecuteFail();
Example
Async.queueable(new MyQueueableJob())
.rollbackOnJobExecuteFail();
asSchedulable
Converts the queueable builder to a schedulable builder for cron-based scheduling. For scheduling, look into the SchedulableBuilder API.
Signature
SchedulableBuilder asSchedulable();
Example
Async.queueable(new MyQueueableJob())
.asSchedulable();
Execute
enqueue
Enqueues the queueable job with the configured options. Returns an Async.AsyncResult.
Signature
Async.AsyncResult enqueue();
Example
Async.AsyncResult result = Async.queueable(new MyQueueableJob())
.priority(5)
.enqueue();
attachFinalizer
Attaches a finalizer job to run after the current job completes. Can only be called within a QueueableChain context.
Signature
Async.AsyncResult attachFinalizer();
Example
// Inside a QueueableJob's work() method
Async.queueable(new MyFinalizerJob())
.attachFinalizer();
Context
getQueueableJobContext
Gets the current queueable job context, providing access to job information and Salesforce QueueableContext.
Signature
Async.QueueableJobContext getQueueableJobContext();
Example
Async.QueueableJobContext ctx = Async.getQueueableJobContext();
QueueableJob currentJob = ctx.currentJob;
QueueableContext sfContext = ctx.queueableCtx;
getQueueableChainBatchId
Gets the ID of the QueueableChain batch job if the current execution is part of a batch-based chain.
Signature
Id getQueueableChainBatchId();
Example
Id batchId = Async.getQueueableChainBatchId();
System.debug('Current batch ID: ' + batchId);