DatabaseQueue
class DatabaseQueue 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 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 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
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.
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 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.
Raise the job queueing event.
Raise the job queued event.
Create a new database queue instance.
Get the size of the queue.
Push a new job onto the queue.
Push a raw payload onto the queue.
Push a new job onto the queue after (n) seconds.
Release a reserved job back onto the queue after (n) seconds.
Push a raw payload to the database with a given delay of (n) seconds.
Create an array to insert for the given job.
Get the next available job for the queue.
Get the lock required for popping the next job.
Modify the query to check for jobs that are reserved but have expired.
Marshal the reserved job into a DatabaseJob instance.
Delete a reserved job from the queue.
Delete a reserved job from the reserved queue and release it.
Delete all of the jobs from the queue.
Get the queue or return the default.
Get the underlying database 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 string
runTimeForHumans(float $startTime, float $endTime = null)
Given a start time, format the total run time for human readability.
in
Queue at line 57
mixed
pushOn(string $queue, string $job, mixed $data = '')
Push a new job onto the queue.
in
Queue at line 71
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 101
protected string
createPayload(Closure|string|object $job, string $queue, mixed $data = '')
Create a payload string from the given job and data.
in
Queue at line 126
protected array
createPayloadArray(string|object $job, string $queue, mixed $data = '')
Create a payload array from the given job and data.
in
Queue at line 140
protected array
createObjectPayload(object $job, string $queue)
Create a payload for an object-based queue handler.
in
Queue at line 176
protected string
getDisplayName(object $job)
Get the display name for the given job.
in
Queue at line 189
mixed
getJobTries(mixed $job)
Get the maximum number of attempts for an object-based queue handler.
in
Queue at line 208
mixed
getJobBackoff(mixed $job)
Get the backoff for an object-based queue handler.
in
Queue at line 229
mixed
getJobExpiration(mixed $job)
Get the expiration timestamp for an object-based queue handler.
in
Queue at line 248
protected bool
jobShouldBeEncrypted(object $job)
Determine if the job should be encrypted.
in
Queue at line 265
protected array
createStringPayload(string $job, string $queue, mixed $data)
Create a typical, string based queue payload array.
in
Queue at line 286
static void
createPayloadUsing(callable|null $callback)
Register a callback to be executed when creating job payloads.
in
Queue at line 302
protected array
withCreatePayloadHooks(string $queue, array $payload)
Create the given payload using any registered payload hooks.
in
Queue at line 323
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 351
protected bool
shouldDispatchAfterCommit(Closure|string|object $job)
Determine if the job should be dispatched after all database transactions have committed.
in
Queue at line 373
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 392
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 429
Container
getContainer()
Get the container instance being used by the connection.
__construct(Connection $database, string $table, string $default = 'default', int $retryAfter = 60, bool $dispatchAfterCommit = false)
Create a new database queue instance.
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.
mixed
release(string $queue, DatabaseJobRecord $job, int $delay)
Release a reserved job back onto the queue after (n) seconds.
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 of (n) seconds.
protected array
buildDatabaseRecord(string|null $queue, string $payload, int $availableAt, int $attempts = 0)
Create an array to insert for the given job.
protected DatabaseJobRecord|null
getNextAvailableJob(string|null $queue)
Get the next available job for the queue.
protected void
isReservedButExpired(Builder $query)
Modify the query to check for jobs that are reserved but have expired.
protected DatabaseJob
marshalJob(string $queue, DatabaseJobRecord $job)
Marshal the reserved job into a DatabaseJob instance.
protected DatabaseJobRecord
markJobAsReserved(DatabaseJobRecord $job)
Mark the given job ID as reserved.
void
deleteAndRelease(string $queue, DatabaseJob $job, int $delay)
Delete a reserved job from the reserved queue and release it.