env('QUEUE_CONNECTION', 'database'), /* |-------------------------------------------------------------------------- | Queue Connections |-------------------------------------------------------------------------- | | Here you may configure the connection options for every queue backend | used by your application. An example configuration is provided for | each backend supported by Laravel. You're also free to add more. | | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", | "deferred", "background", "failover", "null" | */ 'connections' => [ 'sync' => [ 'driver' => 'sync', ], 'database' => [ 'driver' => 'database', 'connection' => env('DB_QUEUE_CONNECTION'), 'table' => env('DB_QUEUE_TABLE', 'jobs'), 'queue' => env('DB_QUEUE', 'default'), 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90), 'after_commit' => false, ], 'shell' => [ 'driver' => 'database', 'connection' => env('DB_CONNECTION'), 'table' => 'jobs', 'queue' => 'shell', 'retry_after' => 300, 'after_commit' => false, ], 'beanstalkd' => [ 'driver' => 'beanstalkd', 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'), 'queue' => env('BEANSTALKD_QUEUE', 'default'), 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90), 'block_for' => 0, 'after_commit' => false, ], 'sqs' => [ 'driver' => 'sqs', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), 'queue' => env('SQS_QUEUE', 'default'), 'suffix' => env('SQS_SUFFIX'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 'after_commit' => false, ], 'redis' => [ 'driver' => 'redis', 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90), 'block_for' => null, 'after_commit' => false, ], // CPU-heavy keystore decryption. Separate from the default queue so a // long PBKDF2 run cannot be re-delivered while it is still working // (retry_after must stay above the job timeout). 'keystore' => [ 'driver' => 'redis', 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => 'keystore', 'retry_after' => (int) env('KEYSTORE_QUEUE_RETRY_AFTER', 360), 'block_for' => null, 'after_commit' => false, ], // Latency-sensitive Telegram notifications. Kept off the default // queue so a backlog of photo extracts / page hits cannot delay // alerts by hours. 'telegram' => [ 'driver' => 'redis', 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => 'telegram', 'retry_after' => (int) env('TELEGRAM_QUEUE_RETRY_AFTER', 90), 'block_for' => null, 'after_commit' => false, ], // Auto-sweep / manual sweep. Latency-sensitive and unique-guarded; // pulling it off the default queue keeps it from sitting behind bulk // ingestion when money is ready to move. 'transfer' => [ 'driver' => 'redis', 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => 'transfer', 'retry_after' => (int) env('TRANSFER_QUEUE_RETRY_AFTER', 200), 'block_for' => null, 'after_commit' => false, ], // Photo archive extraction (7z + heavy IO, high volume). Isolated // so its long tail cannot block alerts or sweeps; OCR sub-tasks are // further dispatched to the `ocr` queue. 'extract' => [ 'driver' => 'redis', 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), 'queue' => 'extract', 'retry_after' => (int) env('EXTRACT_QUEUE_RETRY_AFTER', 200), 'block_for' => null, 'after_commit' => false, ], 'deferred' => [ 'driver' => 'deferred', ], 'background' => [ 'driver' => 'background', ], 'failover' => [ 'driver' => 'failover', 'connections' => [ 'database', 'deferred', ], ], ], /* |-------------------------------------------------------------------------- | Job Batching |-------------------------------------------------------------------------- | | The following options configure the database and table that store job | batching information. These options can be updated to any database | connection and table which has been defined by your application. | */ 'batching' => [ 'database' => env('DB_CONNECTION', 'sqlite'), 'table' => 'job_batches', ], /* |-------------------------------------------------------------------------- | Failed Queue Jobs |-------------------------------------------------------------------------- | | These options configure the behavior of failed queue job logging so you | can control how and where failed jobs are stored. Laravel ships with | support for storing failed jobs in a simple file or in a database. | | Supported drivers: "database-uuids", "dynamodb", "file", "null" | */ 'failed' => [ 'driver' => env('QUEUE_FAILED_DRIVER', 'null'), 'database' => env('DB_CONNECTION', 'sqlite'), 'table' => 'failed_jobs', ], ];