Docs LATEST

Queue Configuration

Database and synchronous drivers, worker defaults, and queue table naming.

Configuration

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:

  • jobs holds serialized payload, queue name, attempts, availability and reservation timestamps.
  • failed_jobs retains payloads and exception traces after exhaustion of Job::$tries.

Run:

./velvet migrate