QueueManager
class QueueManager implements Factory, Monitor mixin Queue
Traits
Hosts must declare a protected array $poolableDrivers containing their default poolable drivers.
Properties
| protected Closure> | $releaseCallbacks | from HasPoolProxy | |
| protected array | $connections | The array of resolved queue connections. |
|
| protected array | $connectors | The array of resolved queue connectors. |
|
| protected array | $poolableDrivers | The array of drivers which will be wrapped as pool proxies. |
|
| protected QueuePoolProxy>> | $poolProxyClasses | The pool proxy classes for drivers with supplemental queue capabilities. |
Methods
Create a pool proxy for an immutable definition.
Build a namespaced pool definition for a pooled resource.
Get the shared object-pool factory.
Get the release callback for a pooled driver.
Add a driver to the poolable-driver list.
Remove a driver from the poolable-driver list.
Set the poolable-driver list.
Get the number of seconds until the given DateTime.
Get the "available at" UNIX timestamp.
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.
Resolve the default connection name for a given queueable instance.
Resolve the default queue name for a given queueable instance.
Get the container that owns the queue routes.
Register an event listener for the before job event.
Register an event listener for the after job event.
Register an event listener for the exception occurred job event.
Register an event listener for the daemon queue loop.
Register an event listener for the failed job event.
Register an event listener for the daemon queue starting.
Register an event listener for the daemon queue stopping.
Register a callback to be invoked when a job runs for longer than a given amount of time.
Register the default queue route for a given class.
Forward the given queue to another queue and/or connection.
Pause a queue by its name and connection.
Pause a queue by its name and connection for a given amount of time.
Pause job processing for all queues on all connections.
Resume a paused queue by its name and connection.
Resume job processing for all queues on all connections.
Determine if a queue is paused.
Determine which of the given queues are currently paused.
Indicate that queue workers should not poll for restart or pause signals.
Determine if the driver is connected.
Resolve a queue connection instance.
Reject circular definitions owned by the resolved failover connector.
Get the connector for a given driver.
Get the queue connection configuration.
Get the name of the default queue connection.
Set the name of the default queue connection.
Get the full name for the given connection.
Disconnect a queue connection and close its shared resource pool.
Get the application instance used by the manager.
Register a callback to be executed when creating job payloads.
Dynamically pass calls to the default connection.
Details
in
HasPoolProxy at line 28
protected mixed
createPoolProxy(string $driver, Closure $createCallback, PoolDefinition $definition, string $proxyClass)
Create a pool proxy for an immutable definition.
in
HasPoolProxy at line 49
protected PoolDefinition
poolDefinition(string $resource, array $poolConfig, array $fingerprintSource)
Build a namespaced pool definition for a pooled resource.
at line 571
protected Factory
poolFactory()
Get the shared object-pool factory.
in
HasPoolProxy at line 75
HasPoolProxy
setReleaseCallback(string $driver, Closure $callback)
Set the release callback for a pooled driver.
The callback persists on the shared manager for the worker lifetime and is captured by every subsequently created proxy for the driver.
in
HasPoolProxy at line 86
Closure|null
getReleaseCallback(string $driver)
Get the release callback for a pooled driver.
in
HasPoolProxy at line 98
HasPoolProxy
addPoolableDriver(string $driver)
Add a driver to the poolable-driver list.
The list persists on the manager for the worker lifetime and is consulted on subsequent driver creation. Per-request use races across coroutines and does not affect already-cached drivers.
in
HasPoolProxy at line 115
HasPoolProxy
removePoolableDriver(string $driver)
Remove a driver from the poolable-driver list.
The list persists on the manager for the worker lifetime and is consulted on subsequent driver creation. Per-request use races across coroutines and does not affect already-cached drivers.
in
HasPoolProxy at line 133
array
getPoolableDrivers()
Get the poolable-driver list.
in
HasPoolProxy at line 145
HasPoolProxy
setPoolableDrivers(array $poolableDrivers)
Set the poolable-driver list.
The list persists on the manager for the worker lifetime and is consulted on subsequent driver creation. Per-request use races across coroutines and does not affect already-cached drivers.
in
InteractsWithTime at line 17
protected int
secondsUntil(DateInterval|DateTimeInterface|int $delay)
Get the number of seconds until the given DateTime.
in
InteractsWithTime at line 29
protected int
availableAt(DateInterval|DateTimeInterface|int|null $delay = 0)
Get the "available at" UNIX timestamp.
in
InteractsWithTime at line 47
protected DateTimeInterface|int
parseDateInterval(DateInterval|DateTimeInterface|int|null $delay)
If the given value is an interval, convert it to a DateTime instance.
in
InteractsWithTime at line 63
protected int
currentTime()
Get the current system time as a UNIX timestamp.
in
InteractsWithTime at line 71
protected string
runTimeForHumans(float $startTime, float|null $endTime = null)
Given a start time, format the total run time for human readability.
in
ResolvesQueueRoutes at line 19
string|null
resolveConnectionFromQueueRoute(object $queueable, UnitEnum|string|null $queue = null)
Resolve the default connection name for a given queueable instance.
in
ResolvesQueueRoutes at line 27
string|null
resolveQueueFromQueueRoute(object $queueable)
Resolve the default queue name for a given queueable instance.
in
ResolvesQueueRoutes at line 35
protected QueueRoutes
queueRoutes()
Get the queue routes manager instance.
at line 237
protected Container
queueRoutesContainer()
Get the container that owns the queue routes.
at line 84
__construct(Container $app)
Create a new queue manager instance.
at line 95
void
before(mixed $callback)
Register an event listener for the before job event.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 108
void
after(mixed $callback)
Register an event listener for the after job event.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 121
void
exceptionOccurred(mixed $callback)
Register an event listener for the exception occurred job event.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 134
void
looping(mixed $callback)
Register an event listener for the daemon queue loop.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 147
void
failing(mixed $callback)
Register an event listener for the failed job event.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 160
void
starting(mixed $callback)
Register an event listener for the daemon queue starting.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 173
void
stopping(mixed $callback)
Register an event listener for the daemon queue stopping.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 186
void
whenJobRunsLongerThan(DateTimeInterface|CarbonInterval|float|int $threshold, callable $handler)
Register a callback to be invoked when a job runs for longer than a given amount of time.
The listener persists on the singleton event dispatcher for the worker lifetime and runs for every subsequent matching queue event.
at line 214
void
route(array|string $class, UnitEnum|string|null $queue = null, UnitEnum|string|null $connection = null)
Register the default queue route for a given class.
The route persists on the singleton QueueRoutes registry for the worker lifetime and affects every subsequent dispatch of that class.
at line 228
void
forward(array|string|UnitEnum $queue, UnitEnum|string|null $to = null, UnitEnum|string|null $connection = null)
Forward the given queue to another queue and/or connection.
Forwards persist on the singleton QueueRoutes registry for the worker lifetime and affect every subsequent dispatch and queue operation.
at line 245
void
pause(UnitEnum|string $queue, UnitEnum|string|null $connection = null)
Pause a queue by its name and connection.
at line 267
void
pauseFor(UnitEnum|string $queue, DateInterval|DateTimeInterface|int $ttl, UnitEnum|string|null $connection = null)
Pause a queue by its name and connection for a given amount of time.
at line 289
void
pauseAll()
Pause job processing for all queues on all connections.
at line 307
void
resume(UnitEnum|string $queue, UnitEnum|string|null $connection = null)
Resume a paused queue by its name and connection.
at line 331
void
resumeAll()
Resume job processing for all queues on all connections.
Queues paused individually are not affected.
at line 349
bool
isPaused(UnitEnum|string $queue, UnitEnum|string|null $connection = null)
Determine if a queue is paused.
at line 365
array
getPausedQueues(array $queues, string|null $connection = null)
Determine which of the given queues are currently paused.
at line 398
void
withoutInterruptionPolling()
Indicate that queue workers should not poll for restart or pause signals.
This prevents the workers from hitting the application cache to determine if they need to pause or restart.
Mutates process-global worker flags; runtime use races across coroutines and changes every concurrent worker pause or restart check.
at line 408
bool
connected(UnitEnum|string|null $name = null)
Determine if the driver is connected.
at line 424
Queue
connection(UnitEnum|string|null $name = null)
Resolve a queue connection instance.
at line 449
protected Queue
resolve(string $name)
Resolve a queue connection.
at line 490
protected void
ensureConnectionsAreAcyclic(array $config, string $driver, array $path = [])
Reject circular definitions owned by the resolved failover connector.
at line 523
protected ConnectorInterface
getConnector(string $driver)
Get the connector for a given driver.
at line 538
void
extend(string $driver, Closure $resolver)
Add a queue connection resolver.
The resolver persists in the singleton's connectors array for the worker lifetime and applies to every subsequent connection.
at line 550
void
addConnector(string $driver, Closure $resolver)
Add a queue connection resolver.
The resolver persists in the singleton's connectors array for the worker lifetime and applies to every subsequent connection.
at line 559
protected array|null
getConfig(string $name)
Get the queue connection configuration.
at line 579
string
getDefaultDriver()
Get the name of the default queue connection.
at line 589
void
setDefaultDriver(UnitEnum|string $name)
Set the name of the default queue connection.
Mutates process-global config; per-request use races across coroutines.
at line 600
string
getName(string|null $connection = null)
Get the full name for the given connection.
at line 613
void
purge(string|null $name = null)
Disconnect a queue connection and close its shared resource pool.
Use this to recover broken pooled resources. Other connections sharing the pool transparently acquire a fresh pool on their next operation.
at line 649
Container
getApplication()
Get the application instance used by the manager.
at line 663
QueueManager
setApplication(Container $app)
Set the application instance used by the manager.
Swaps the container reference on the singleton and on every cached queue connection; per-request use races across coroutines and breaks every concurrent dispatch.
at line 689
void
createPayloadUsing(callable|null $callback)
Register a callback to be executed when creating job payloads.
The callback persists in a static property for the worker lifetime and runs on every subsequent payload creation across all coroutines. Passing null clears the registry.
at line 698
mixed
__call(string $method, array $parameters)
Dynamically pass calls to the default connection.