RedisQueue
class RedisQueue extends Queue implements Queue, ClearableQueue (View source)
Traits
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 Factory | $redis | The Redis factory implementation. |
|
| protected string | $connection | The connection name. |
|
| protected string | $default | The name of the default queue. |
|
| protected int|null | $retryAfter | The expiration time of a job. |
|
| protected int|null | $blockFor | The maximum number of seconds to block for a job. |
|
| protected int | $migrationBatchSize | The batch size to use when migrating delayed / expired jobs onto the primary queue. |
|
| protected bool | $secondaryQueueHadJob | Indicates if a secondary queue had a job available between checks of the primary queue. |
|
| protected bool|null | $isCluster | Indicates if the connection is a Redis Cluster connection. |
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.
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.
Create a payload string from the given job and data.
Create a payload string 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.
Raise the job queueing event.
Raise the job queued event.
Create a new Redis 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 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 a delay.
Push a raw job onto the queue after (n) seconds.
Migrate any delayed or expired jobs onto the primary queue.
Migrate the delayed jobs that are ready to the regular queue.
Retrieve the next job from the queue.
Delete a reserved job from the reserved queue and release it.
Delete all of the jobs from the queue.
Get a random ID string.
Get the queue or return the default.
Get the cluster-safe Redis key for the given queue.
Get the connection for the queue.
Determine if the connection is a Redis Cluster connection.
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)
Get an instance of the given attribute class from the target class or its parents.
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.
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.
protected array
createPayloadArray(string|object $job, string $queue, mixed $data = '')
Create a payload string from the given job and data.
in
Queue at line 170
protected array
createObjectPayload(object $job, string $queue)
Create a payload for an object-based queue handler.
in
Queue at line 217
protected string
getDisplayName(object $job)
Get the display name for the given job.
in
Queue at line 230
mixed
getJobTries(mixed $job)
Get the maximum number of attempts for an object-based queue handler.
in
Queue at line 247
mixed
getJobBackoff(mixed $job)
Get the backoff for an object-based queue handler.
in
Queue at line 270
mixed
getJobExpiration(mixed $job)
Get the expiration timestamp for an object-based queue handler.
in
Queue at line 289
protected bool
jobShouldBeEncrypted(object $job)
Determine if the job should be encrypted.
in
Queue at line 306
protected array
createStringPayload(string $job, string $queue, mixed $data)
Create a typical, string based queue payload array.
in
Queue at line 328
static void
createPayloadUsing(callable|null $callback)
Register a callback to be executed when creating job payloads.
in
Queue at line 343
protected array
withCreatePayloadHooks(string $queue, array $payload)
Create the given payload using any registered payload hooks.
in
Queue at line 364
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 408
protected bool
shouldDispatchAfterCommit(Closure|string|object $job)
Determine if the job should be dispatched after all database transactions have committed.
in
Queue at line 430
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 449
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 463
string
getConnectionName()
Get the connection name for the queue.
in
Queue at line 474
$this
setConnectionName(string $name)
Set the connection name for the queue.
in
Queue at line 486
array
getConfig()
Get the queue configuration array.
in
Queue at line 496
$this
setConfig(array $config)
Set the queue configuration array.
in
Queue at line 508
Container
getContainer()
Get the container instance being used by the connection.
in
Queue at line 518
void
setContainer(Container $container)
Set the IoC container instance.
__construct(Factory $redis, string $default = 'default', string|null $connection = null, int $retryAfter = 60, int|null $blockFor = null, bool $dispatchAfterCommit = false, int $migrationBatchSize = -1)
Create a new Redis 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.
int|null
creationTimeOfOldestPendingJob(string|null $queue = null)
Get the creation timestamp of the oldest pending job, excluding delayed jobs.
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 a delay.
protected mixed
laterRaw(DateTimeInterface|DateInterval|int $delay, string $payload, string|null $queue = null)
Push a raw job onto the queue after (n) seconds.
Job|null
pop(string|null $queue = null, int $index = 0)
Pop the next job off of the queue.
protected void
migrate(string $queue)
Migrate any delayed or expired jobs onto the primary queue.
array
migrateExpiredJobs(string $from, string $to)
Migrate the delayed jobs that are ready to the regular queue.
protected array
retrieveNextJob(string $queue, bool $block = true)
Retrieve the next job from the queue.
void
deleteReserved(string $queue, RedisJob $job)
Delete a reserved job from the queue.
void
deleteAndRelease(string $queue, RedisJob $job, int $delay)
Delete a reserved job from the reserved queue and release it.
int
clear(string $queue)
Delete all of the jobs from the queue.
protected string
getRandomId()
Get a random ID string.
string
getQueue(string|null $queue)
Get the queue or return the default.
protected string
getQueueRedisKey(string|null $queue = null)
Get the cluster-safe Redis key for the given queue.
Connection
getConnection()
Get the connection for the queue.
protected bool
isClusterConnection()
Determine if the connection is a Redis Cluster connection.
Factory
getRedis()
Get the underlying Redis instance.