DatabaseQueue

class DatabaseQueue extends Queue implements Queue, ClearableQueue (View source)

Traits

InteractsWithTime

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.

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

Get the "available at" UNIX timestamp.

from InteractsWithTime
DateTimeInterface|int parseDateInterval(DateTimeInterface|DateInterval|int $delay)

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

from InteractsWithTime
int currentTime()

Get the current system time as a UNIX timestamp.

from InteractsWithTime
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 getJobBackoff(mixed $job)

Get the backoff 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.

DatabaseJobRecord|null 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.

DatabaseJob marshalJob(string $queue, DatabaseJobRecord $job)

Marshal the reserved job into a DatabaseJob instance.

DatabaseJobRecord markJobAsReserved(DatabaseJobRecord $job)

Mark the given job ID as reserved.

void deleteReserved(string $queue, string $id)

Delete a reserved job from the queue.

void deleteAndRelease(string $queue, DatabaseJob $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.

string getQueue(string|null $queue)

Get the queue or return the default.

Connection 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 getJobBackoff(mixed $job)

Get the backoff 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

void deleteAndRelease(string $queue, DatabaseJob $job, int $delay)

Delete a reserved job from the reserved queue and release it.

Parameters

string $queue
DatabaseJob $job
int $delay

Return Value

void

int clear(string $queue)

Delete all of the jobs from the queue.

Parameters

string $queue

Return Value

int

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

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Queue/DatabaseQueue.html