class DatabaseQueue extends Queue implements Queue

Traits

Properties

protected Container $container

The IoC container instance.

from  Queue
protected Encrypter $encrypter

The encrypter implementation.

from  Queue
protected string $connectionName

The connection name for the queue.

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 $delay)

Get the number of seconds until the given DateTime.

int
availableAt(DateTimeInterface|int $delay = 0)

Get the "available at" UNIX timestamp.

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, DateTime|int $delay, string $job, mixed $data = '')

Push a new job onto the queue after a delay.

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

Push an array of jobs onto the queue.

string
createPayload(string $job, mixed $data = '', string $queue = null)

Create a payload string from the given job and data.

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

Create a payload array from the given job and data.

from  Queue
array
createObjectPayload(mixed $job)

Create a payload for an object-based queue handler.

from  Queue
string
getDisplayName(mixed $job)

Get the display name for the given job.

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

Create a typical, string based queue payload array.

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 $queue = null)

Get the size of the queue.

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

Push a new job onto the queue.

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

Push a raw payload onto the queue.

mixed
later(DateTime|int $delay, string $job, mixed $data = '', string $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, DateTime|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 $queue = null)

Pop the next job off of the queue.

getNextAvailableJob(string|null $queue)

Get the next available job for the queue.

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

in InteractsWithTime at line 16
protected int secondsUntil(DateTimeInterface $delay)

Get the number of seconds until the given DateTime.

Parameters

DateTimeInterface $delay

Return Value

int

in InteractsWithTime at line 29
protected int availableAt(DateTimeInterface|int $delay = 0)

Get the "available at" UNIX timestamp.

Parameters

DateTimeInterface|int $delay

Return Value

int

in InteractsWithTime at line 41
protected int currentTime()

Get the current system time as a UNIX timestamp.

Return Value

int

in Queue at line 40
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

in Queue at line 54
mixed laterOn(string $queue, DateTime|int $delay, string $job, mixed $data = '')

Push a new job onto the queue after a delay.

Parameters

string $queue
DateTime|int $delay
string $job
mixed $data

Return Value

mixed

at line 119
mixed bulk(array $jobs, mixed $data = '', string $queue = null)

Push an array of jobs onto the queue.

Parameters

array $jobs
mixed $data
string $queue

Return Value

mixed

in Queue at line 84
protected string createPayload(string $job, mixed $data = '', string $queue = null)

Create a payload string from the given job and data.

Parameters

string $job
mixed $data
string $queue

Return Value

string

Exceptions

InvalidPayloadException

in Queue at line 105
protected array createPayloadArray(string $job, mixed $data = '', string $queue = null)

Create a payload array from the given job and data.

Parameters

string $job
mixed $data
string $queue

Return Value

array

in Queue at line 118
protected array createObjectPayload(mixed $job)

Create a payload for an object-based queue handler.

Parameters

mixed $job

Return Value

array

in Queue at line 138
protected string getDisplayName(mixed $job)

Get the display name for the given job.

Parameters

mixed $job

Return Value

string

in Queue at line 151
protected array createStringPayload(string $job, mixed $data)

Create a typical, string based queue payload array.

Parameters

string $job
mixed $data

Return Value

array

in Queue at line 165
string getConnectionName()

Get the connection name for the queue.

Return Value

string

in Queue at line 176
$this setConnectionName(string $name)

Set the connection name for the queue.

Parameters

string $name

Return Value

$this

in Queue at line 189
void setContainer(Container $container)

Set the IoC container instance.

Parameters

Container $container

Return Value

void

at line 50
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

at line 64
int size(string $queue = null)

Get the size of the queue.

Parameters

string $queue

Return Value

int

at line 79
mixed push(string $job, mixed $data = '', string $queue = null)

Push a new job onto the queue.

Parameters

string $job
mixed $data
string $queue

Return Value

mixed

at line 92
mixed pushRaw(string $payload, string $queue = null, array $options = [])

Push a raw payload onto the queue.

Parameters

string $payload
string $queue
array $options

Return Value

mixed

at line 106
mixed later(DateTime|int $delay, string $job, mixed $data = '', string $queue = null)

Push a new job onto the queue after a delay.

Parameters

DateTime|int $delay
string $job
mixed $data
string $queue

Return Value

mixed

at line 140
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

at line 154
protected mixed pushToDatabase(string|null $queue, string $payload, DateTime|int $delay = 0, int $attempts = 0)

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

Parameters

string|null $queue
string $payload
DateTime|int $delay
int $attempts

Return Value

mixed

at line 170
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

at line 188
Job|null pop(string $queue = null)

Pop the next job off of the queue.

Parameters

string $queue

Return Value

Job|null

at line 207
protected DatabaseJobRecord|null getNextAvailableJob(string|null $queue)

Get the next available job for the queue.

Parameters

string|null $queue

Return Value

DatabaseJobRecord|null

at line 228
protected void isAvailable(Builder $query)

Modify the query to check for available jobs.

Parameters

Builder $query

Return Value

void

at line 242
protected void isReservedButExpired(Builder $query)

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

Parameters

Builder $query

Return Value

void

at line 258
protected DatabaseJob marshalJob(string $queue, DatabaseJobRecord $job)

Marshal the reserved job into a DatabaseJob instance.

Parameters

string $queue
DatabaseJobRecord $job

Return Value

DatabaseJob

at line 275
protected DatabaseJobRecord markJobAsReserved(DatabaseJobRecord $job)

Mark the given job ID as reserved.

Parameters

DatabaseJobRecord $job

Return Value

DatabaseJobRecord

at line 292
void deleteReserved(string $queue, string $id)

Delete a reserved job from the queue.

Parameters

string $queue
string $id

Return Value

void

at line 309
protected string getQueue(string|null $queue)

Get the queue or return the default.

Parameters

string|null $queue

Return Value

string

at line 319
Connection getDatabase()

Get the underlying database instance.

Return Value

Connection