SqsQueue
class SqsQueue extends Queue implements Queue, ClearableQueue (View source)
Traits
Constants
| MAX_SQS_PAYLOAD_SIZE |
The maximum SQS payload size in bytes (1 MB). |
| MAX_MESSAGES_PER_BATCH |
The maximum number of messages allowed per SendMessageBatch request. |
| EXTENDED_PAYLOAD_CACHE_PREFIX |
The cache key prefix for extended SQS payloads. |
Properties
| protected Container | $container | The IoC container instance. |
from Queue |
| protected string | $connectionName | The connection name for the queue. |
from Queue |
| protected array | $config | The original configuration for the queue. |
from Queue |
| protected bool | $dispatchAfterCommit | Indicates that jobs should be dispatched after all database transactions have committed. |
from Queue |
| static protected callable[] | $createPayloadCallbacks | The create payload callbacks. |
from Queue |
| protected SqsClient | $sqs | The Amazon SQS instance. |
|
| protected string | $default | The name of the default queue. |
|
| protected string | $prefix | The queue URL prefix. |
|
| protected string | $suffix | The queue name suffix. |
|
| protected array | $overflowStorage | The overflow storage options for large payload offloading. |
Methods
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Given a start time, format the total run time for human readability.
Get a configuration value from an attribute, falling back to a property.
Extract the value from an attribute instance.
Get an instance of the given attribute class from the target class or its parents.
Determine if a property declared on a child class overrides an inherited attribute.
Push a new job onto the queue.
Push a new job onto a specific queue after (n) seconds.
Push an array of jobs onto the queue using the SendMessageBatch API.
Create a payload string from the given job and data.
Create a payload array from the given job and data.
Create a payload for an object-based queue handler.
Get the maximum number of attempts for an object-based queue handler.
Get the expiration timestamp for an object-based queue handler.
Create a typical, string based queue payload array.
Register a callback to be executed when creating job payloads.
Create the given payload using any registered payload hooks.
Enqueue a job using the given callback.
Determine if the job should be dispatched after all database transactions have committed.
Register callbacks to release locks if the current database transaction is rolled back.
Raise the job queueing event.
Raise the job queued event.
Create a new Amazon SQS queue instance.
Get the size of the queue.
Get the number of pending jobs.
Get the number of delayed jobs.
Get the number of reserved jobs.
Get the pending jobs for the given queue.
Get the delayed jobs for the given queue.
Get the reserved jobs for the given queue.
Get all pending jobs across every queue.
Get all delayed jobs across every queue.
Get all reserved jobs across every queue.
Get the creation timestamp of the oldest pending job, excluding delayed jobs.
Push a new job onto the queue.
Push a raw payload onto the queue.
Push a new job onto the queue after (n) seconds.
Partition the given jobs by whether they should be deferred until the active database transaction commits.
Create the payload for each of the given jobs.
Build entries, raise queueing events, dispatch chunks, and raise queued events with SQS message IDs.
Build the SendMessageBatch entry for a single prepared message.
Chunk batch entries respecting both the 10-message and cumulative payload-size limits enforced by SendMessageBatch.
Determine if the payload should be stored in cache.
Store the payload in cache and return a pointer payload.
Get the queueable options from the job.
Delete all of the jobs from the queue.
Get the queue or return the default.
Add the given suffix to the given queue name.
Get the underlying SQS instance.
Details
protected int
secondsUntil(DateTimeInterface|DateInterval|int $delay)
Get the number of seconds until the given DateTime.
protected int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)
Get the "available at" UNIX timestamp.
protected DateTimeInterface|int
parseDateInterval(DateTimeInterface|DateInterval|int $delay)
If the given value is an interval, convert it to a DateTime instance.
protected int
currentTime()
Get the current system time as a UNIX timestamp.
protected string
runTimeForHumans(float $startTime, float|null $endTime = null)
Given a start time, format the total run time for human readability.
protected mixed
getAttributeValue(object $target, string $attributeClass, string|null $property = null, mixed $default = null)
Get a configuration value from an attribute, falling back to a property.
protected mixed
extractAttributeValue(object $instance)
Extract the value from an attribute instance.
protected object|null
getAttributeInstance(object $target, string $attributeClass, ReflectionClass|null $declaringClass = null)
Get an instance of the given attribute class from the target class or its parents.
protected bool
propertyOverridesAttribute(object $target, ReflectionClass $reflection, string|null $property, ReflectionClass $attributeDeclaringClass)
Determine if a property declared on a child class overrides an inherited attribute.
in
Queue at line 78
mixed
pushOn(string $queue, string $job, mixed $data = '')
Push a new job onto the queue.
in
Queue at line 92
mixed
laterOn(string $queue, DateTimeInterface|DateInterval|int $delay, string $job, mixed $data = '')
Push a new job onto a specific queue after (n) seconds.
void
bulk(array $jobs, mixed $data = '', string|null $queue = null)
Push an array of jobs onto the queue using the SendMessageBatch API.
in
Queue at line 123
protected string
createPayload(Closure|string|object $job, string $queue, mixed $data = '', DateTimeInterface|DateInterval|int|null $delay = null)
Create a payload string from the given job and data.
in
Queue at line 156
protected array
createPayloadArray(string|object $job, string $queue, mixed $data = '')
Create a payload array from the given job and data.
in
Queue at line 172
protected array
createObjectPayload(object $job, string $queue)
Create a payload for an object-based queue handler.
in
Queue at line 219
protected string
getDisplayName(object $job)
Get the display name for the given job.
in
Queue at line 232
mixed
getJobTries(mixed $job)
Get the maximum number of attempts for an object-based queue handler.
in
Queue at line 249
mixed
getJobBackoff(mixed $job)
Get the backoff for an object-based queue handler.
in
Queue at line 272
mixed
getJobExpiration(mixed $job)
Get the expiration timestamp for an object-based queue handler.
in
Queue at line 291
protected bool
jobShouldBeEncrypted(object $job)
Determine if the job should be encrypted.
in
Queue at line 308
protected array
createStringPayload(string $job, string $queue, mixed $data)
Create a typical, string based queue payload array.
in
Queue at line 330
static void
createPayloadUsing(callable|null $callback)
Register a callback to be executed when creating job payloads.
in
Queue at line 345
protected array
withCreatePayloadHooks(string $queue, array $payload)
Create the given payload using any registered payload hooks.
in
Queue at line 366
protected mixed
enqueueUsing(Closure|string|object $job, string $payload, string|null $queue, DateTimeInterface|DateInterval|int|null $delay, callable $callback)
Enqueue a job using the given callback.
in
Queue at line 396
protected bool
shouldDispatchAfterCommit(Closure|string|object $job)
Determine if the job should be dispatched after all database transactions have committed.
in
Queue at line 415
protected void
registerRollbackCallbacksForJobsThatDispatchAfterCommit(Closure|string|object $job)
Register callbacks to release locks if the current database transaction is rolled back.
in
Queue at line 443
protected void
raiseJobQueueingEvent(string $queue, Closure|string|object $job, string $payload, DateTimeInterface|DateInterval|int|null $delay)
Raise the job queueing event.
in
Queue at line 462
protected void
raiseJobQueuedEvent(string|null $queue, string|int|null $jobId, Closure|string|object $job, string $payload, DateTimeInterface|DateInterval|int|null $delay)
Raise the job queued event.
in
Queue at line 476
string
getConnectionName()
Get the connection name for the queue.
in
Queue at line 487
$this
setConnectionName(string $name)
Set the connection name for the queue.
in
Queue at line 499
array
getConfig()
Get the queue configuration array.
in
Queue at line 509
$this
setConfig(array $config)
Set the queue configuration array.
in
Queue at line 521
Container
getContainer()
Get the container instance being used by the connection.
in
Queue at line 531
void
setContainer(Container $container)
Set the IoC container instance.
__construct(SqsClient $sqs, string $default, string $prefix = '', string $suffix = '', bool $dispatchAfterCommit = false, array $overflowStorage = [])
Create a new Amazon SQS queue instance.
int
size(string|null $queue = null)
Get the size of the queue.
int
pendingSize(string|null $queue = null)
Get the number of pending jobs.
int
delayedSize(string|null $queue = null)
Get the number of delayed jobs.
int
reservedSize(string|null $queue = null)
Get the number of reserved jobs.
Collection
pendingJobs(string|null $queue = null)
Get the pending jobs for the given queue.
Collection
delayedJobs(string|null $queue = null)
Get the delayed jobs for the given queue.
Collection
reservedJobs(string|null $queue = null)
Get the reserved jobs for the given queue.
Collection
allPendingJobs()
Get all pending jobs across every queue.
Collection
allDelayedJobs()
Get all delayed jobs across every queue.
Collection
allReservedJobs()
Get all reserved jobs across every queue.
int|null
creationTimeOfOldestPendingJob(string|null $queue = null)
Get the creation timestamp of the oldest pending job, excluding delayed jobs.
Not supported by SQS, returns null.
mixed
push(string|object $job, mixed $data = '', string|null $queue = null)
Push a new job onto the queue.
mixed
pushRaw(string $payload, string|null $queue = null, array $options = [])
Push a raw payload onto the queue.
mixed
later(DateTimeInterface|DateInterval|int $delay, string|object $job, mixed $data = '', string|null $queue = null)
Push a new job onto the queue after (n) seconds.
protected array{0: array, 1: array}
partitionJobsByAfterCommit(array $jobs)
Partition the given jobs by whether they should be deferred until the active database transaction commits.
protected array<int, array{job: mixed, delay: mixed, payload: string}>
prepareBatchMessages(array $jobs, mixed $data, string|null $queue)
Create the payload for each of the given jobs.
Payloads are created at dispatch time, even for jobs deferred until after the transaction commits.
protected void
sendBatchedMessages(array $messages, string|null $queue)
Build entries, raise queueing events, dispatch chunks, and raise queued events with SQS message IDs.
protected array
prepareSendMessageBatchEntry(int $id, array $message, string|null $queue)
Build the SendMessageBatch entry for a single prepared message.
The entry Id maps each Successful or Failed result returned by SQS back to its job.
protected array
chunkBatchEntries(array $entries)
Chunk batch entries respecting both the 10-message and cumulative payload-size limits enforced by SendMessageBatch.
protected bool
willOverflow(string $payload)
Determine if the payload should be stored in cache.
protected string
overflow(string $payload)
Store the payload in cache and return a pointer payload.
array
getQueueableOptions(mixed $job, string|null $queue, string $payload, DateTimeInterface|DateInterval|int|null $delay = null)
Get the queueable options from the job.
Job|null
pop(string|null $queue = null)
Pop the next job off of the queue.
int
clear(string $queue = null)
Delete all of the jobs from the queue.
string
getQueue(string|null $queue)
Get the queue or return the default.
protected string
suffixQueue(string $queue, string $suffix = '')
Add the given suffix to the given queue name.
SqsClient
getSqs()
Get the underlying SQS instance.
Laravel Cloud is the best place to deploy Laravel, Nuxt, Express, Hono, Node.js, Bun, Go, Flask, Python, and more, with dedicated infrastructure available on AWS through Laravel Private Cloud.