class DatabaseQueue extends Queue implements Queue (View source)

Traits

Properties

protected Container $container

The IoC container instance.

from  Queue
protected string $connectionName

The connection name for the queue.

from  Queue
static protected callable[] $createPayloadCallbacks

The create payload callbacks.

from  Queue
protected Connection $database

The database connection instance.

protected string $table

The database table that holds the jobs.

protected string $default

The name of the default queue.

protected int|null $retryAfter

The expiration time of a job.

Methods

int
secondsUntil(DateTimeInterface|DateInterval|int $delay)

Get the number of seconds until the given DateTime.

int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)

Get the "available at" UNIX timestamp.

parseDateInterval(DateTimeInterface|DateInterval|int $delay)

If the given value is an interval, convert it to a DateTime instance.

int
currentTime()

Get the current system time as a UNIX timestamp.

mixed
pushOn(string $queue, string $job, mixed $data = '')

Push a new job onto the queue.

from  Queue
mixed
laterOn(string $queue, DateTimeInterface|DateInterval|int $delay, string $job, mixed $data = '')

Push a new job onto the queue after a delay.

from  Queue
void
bulk(array $jobs, mixed $data = '', string|null $queue = null)

Push an array of jobs onto the queue.

string
createPayload(Closure|string|object $job, string $queue, mixed $data = '')

Create a payload string from the given job and data.

from  Queue
array
createPayloadArray(string|object $job, string $queue, mixed $data = '')

Create a payload array from the given job and data.

from  Queue
array
createObjectPayload(object $job, string $queue)

Create a payload for an object-based queue handler.

from  Queue
string
getDisplayName(object $job)

Get the display name for the given job.

from  Queue
mixed
getJobRetryDelay(mixed $job)

Get the retry delay for an object-based queue handler.

from  Queue
mixed
getJobExpiration(mixed $job)

Get the expiration timestamp for an object-based queue handler.

from  Queue
array
createStringPayload(string $job, string $queue, mixed $data)

Create a typical, string based queue payload array.

from  Queue
static void
createPayloadUsing(callable $callback)

Register a callback to be executed when creating job payloads.

from  Queue
array
withCreatePayloadHooks(string $queue, array $payload)

Create the given payload using any registered payload hooks.

from  Queue
string
getConnectionName()

Get the connection name for the queue.

from  Queue
$this
setConnectionName(string $name)

Set the connection name for the queue.

from  Queue
void
setContainer(Container $container)

Set the IoC container instance.

from  Queue
void
__construct(Connection $database, string $table, string $default = 'default', int $retryAfter = 60)

Create a new database queue instance.

int
size(string|null $queue = null)

Get the size of the queue.

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.

mixed
release(string $queue, DatabaseJobRecord $job, int $delay)

Release a reserved job back onto the queue.

mixed
pushToDatabase(string|null $queue, string $payload, DateTimeInterface|DateInterval|int $delay = 0, int $attempts = 0)

Push a raw payload to the database with a given delay.

array
buildDatabaseRecord(string|null $queue, string $payload, int $availableAt, int $attempts = 0)

Create an array to insert for the given job.

Job|null
pop(string|null $queue = null)

Pop the next job off of the queue.

getNextAvailableJob(string|null $queue)

Get the next available job for the queue.

string|bool
getLockForPopping()

Get the lock required for popping the next job.

void
isAvailable(Builder $query)

Modify the query to check for available jobs.

void
isReservedButExpired(Builder $query)

Modify the query to check for jobs that are reserved but have expired.

marshalJob(string $queue, DatabaseJobRecord $job)

Marshal the reserved job into a DatabaseJob instance.

markJobAsReserved(DatabaseJobRecord $job)

Mark the given job ID as reserved.

void
deleteReserved(string $queue, string $id)

Delete a reserved job from the queue.

string
getQueue(string|null $queue)

Get the queue or return the default.

getDatabase()

Get the underlying database instance.

Details

protected int secondsUntil(DateTimeInterface|DateInterval|int $delay)

Get the number of seconds until the given DateTime.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

int

protected int availableAt(DateTimeInterface|DateInterval|int $delay = 0)

Get the "available at" UNIX timestamp.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

int

protected DateTimeInterface|int parseDateInterval(DateTimeInterface|DateInterval|int $delay)

If the given value is an interval, convert it to a DateTime instance.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

DateTimeInterface|int

protected int currentTime()

Get the current system time as a UNIX timestamp.

Return Value

int

mixed pushOn(string $queue, string $job, mixed $data = '')

Push a new job onto the queue.

Parameters

string $queue
string $job
mixed $data

Return Value

mixed

mixed laterOn(string $queue, DateTimeInterface|DateInterval|int $delay, string $job, mixed $data = '')

Push a new job onto the queue after a delay.

Parameters

string $queue
DateTimeInterface|DateInterval|int $delay
string $job
mixed $data

Return Value

mixed

void bulk(array $jobs, mixed $data = '', string|null $queue = null)

Push an array of jobs onto the queue.

Parameters

array $jobs
mixed $data
string|null $queue

Return Value

void

protected string createPayload(Closure|string|object $job, string $queue, mixed $data = '')

Create a payload string from the given job and data.

Parameters

Closure|string|object $job
string $queue
mixed $data

Return Value

string

Exceptions

InvalidPayloadException

protected array createPayloadArray(string|object $job, string $queue, mixed $data = '')

Create a payload array from the given job and data.

Parameters

string|object $job
string $queue
mixed $data

Return Value

array

protected array createObjectPayload(object $job, string $queue)

Create a payload for an object-based queue handler.

Parameters

object $job
string $queue

Return Value

array

protected string getDisplayName(object $job)

Get the display name for the given job.

Parameters

object $job

Return Value

string

mixed getJobRetryDelay(mixed $job)

Get the retry delay for an object-based queue handler.

Parameters

mixed $job

Return Value

mixed

mixed getJobExpiration(mixed $job)

Get the expiration timestamp for an object-based queue handler.

Parameters

mixed $job

Return Value

mixed

protected array createStringPayload(string $job, string $queue, mixed $data)

Create a typical, string based queue payload array.

Parameters

string $job
string $queue
mixed $data

Return Value

array

static void createPayloadUsing(callable $callback)

Register a callback to be executed when creating job payloads.

Parameters

callable $callback

Return Value

void

protected array withCreatePayloadHooks(string $queue, array $payload)

Create the given payload using any registered payload hooks.

Parameters

string $queue
array $payload

Return Value

array

string getConnectionName()

Get the connection name for the queue.

Return Value

string

$this setConnectionName(string $name)

Set the connection name for the queue.

Parameters

string $name

Return Value

$this

void setContainer(Container $container)

Set the IoC container instance.

Parameters

Container $container

Return Value

void

void __construct(Connection $database, string $table, string $default = 'default', int $retryAfter = 60)

Create a new database queue instance.

Parameters

Connection $database
string $table
string $default
int $retryAfter

Return Value

void

int size(string|null $queue = null)

Get the size of the queue.

Parameters

string|null $queue

Return Value

int

mixed push(string|object $job, mixed $data = '', string|null $queue = null)

Push a new job onto the queue.

Parameters

string|object $job
mixed $data
string|null $queue

Return Value

mixed

mixed pushRaw(string $payload, string|null $queue = null, array $options = [])

Push a raw payload onto the queue.

Parameters

string $payload
string|null $queue
array $options

Return Value

mixed

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.

Parameters

DateTimeInterface|DateInterval|int $delay
string|object $job
mixed $data
string|null $queue

Return Value

mixed

mixed release(string $queue, DatabaseJobRecord $job, int $delay)

Release a reserved job back onto the queue.

Parameters

string $queue
DatabaseJobRecord $job
int $delay

Return Value

mixed

protected mixed pushToDatabase(string|null $queue, string $payload, DateTimeInterface|DateInterval|int $delay = 0, int $attempts = 0)

Push a raw payload to the database with a given delay.

Parameters

string|null $queue
string $payload
DateTimeInterface|DateInterval|int $delay
int $attempts

Return Value

mixed

protected array buildDatabaseRecord(string|null $queue, string $payload, int $availableAt, int $attempts = 0)

Create an array to insert for the given job.

Parameters

string|null $queue
string $payload
int $availableAt
int $attempts

Return Value

array

Job|null pop(string|null $queue = null)

Pop the next job off of the queue.

Parameters

string|null $queue

Return Value

Job|null

Exceptions

Throwable

protected DatabaseJobRecord|null getNextAvailableJob(string|null $queue)

Get the next available job for the queue.

Parameters

string|null $queue

Return Value

DatabaseJobRecord|null

protected string|bool getLockForPopping()

Get the lock required for popping the next job.

Return Value

string|bool

protected void isAvailable(Builder $query)

Modify the query to check for available jobs.

Parameters

Builder $query

Return Value

void

protected void isReservedButExpired(Builder $query)

Modify the query to check for jobs that are reserved but have expired.

Parameters

Builder $query

Return Value

void

protected DatabaseJob marshalJob(string $queue, DatabaseJobRecord $job)

Marshal the reserved job into a DatabaseJob instance.

Parameters

string $queue
DatabaseJobRecord $job

Return Value

DatabaseJob

protected DatabaseJobRecord markJobAsReserved(DatabaseJobRecord $job)

Mark the given job ID as reserved.

Parameters

DatabaseJobRecord $job

Return Value

DatabaseJobRecord

void deleteReserved(string $queue, string $id)

Delete a reserved job from the queue.

Parameters

string $queue
string $id

Return Value

void

Exceptions

Throwable

string getQueue(string|null $queue)

Get the queue or return the default.

Parameters

string|null $queue

Return Value

string

Connection getDatabase()

Get the underlying database instance.

Return Value

Connection

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.