Queue Configuration
Database and synchronous drivers, worker defaults, and queue table naming.
Queue settings live in config/queue.php and merge with overrides in user/config/queue.php.
Drivers #
Core ships two backends:
| Driver | Use case |
|---|---|
database |
Persistent jobs (jobs, failed_jobs tables from migrations) |
sync |
Run handle() inline in the requesting process |
Set with QUEUE_DRIVER or queue.driver:
QUEUE_DRIVER=database
Full configuration #
return [
'driver' => env('QUEUE_DRIVER', 'database'),
'table' => 'jobs',
'failed_table' => 'failed_jobs',
// Reserved for future batch APIs; no default `job_batches` migration yet.
'batches_table' => 'job_batches',
/** Seconds before a reserved job may be reclaimed as stuck */
'retry_after' => 90,
'default' => 'default',
/** Worker sleep when queue is empty */
'sleep' => 3,
/** Memory limit in MB; worker exits the loop once RSS exceeds this */
'memory_limit' => 128,
];
Database migrations #
Tables are created by database/migrations/002_create_queue_tables.php:
jobsholds serialized payload, queue name, attempts, availability and reservation timestamps.failed_jobsretains payloads and exception traces after exhaustion ofJob::$tries.
Run:
./velvet migrate
Related #
- Queue service API for dispatch from PHP.
- Command Reference (
queue:work).