Use file session/cache to avoid SQLite lock failures under queue load.

Database sessions and cache competed with the queue worker on one SQLite file, causing "database is locked" when claiming jobs.
This commit is contained in:
ben
2026-08-12 22:32:56 +02:00
parent f65c816464
commit 4898d5cfde
3 changed files with 8 additions and 5 deletions
+2 -2
View File
@@ -27,7 +27,7 @@ DB_CONNECTION=sqlite
# DB_USERNAME=root
# DB_PASSWORD=
SESSION_DRIVER=database
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
@@ -37,7 +37,7 @@ BROADCAST_CONNECTION=reverb
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database
CACHE_STORE=database
CACHE_STORE=file
# CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1
+2 -1
View File
@@ -38,7 +38,8 @@ return [
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
'busy_timeout' => 5000,
// Wait longer under concurrent writers (queue + web on one SQLite file).
'busy_timeout' => (int) env('DB_BUSY_TIMEOUT', 30000),
'journal_mode' => 'WAL',
'synchronous' => 'NORMAL',
'transaction_mode' => 'DEFERRED',
+4 -2
View File
@@ -14,9 +14,11 @@ x-app-env: &app-env
LOG_CHANNEL: stderr
DB_CONNECTION: sqlite
DB_DATABASE: /app/database/database.sqlite
SESSION_DRIVER: database
# File drivers avoid SQLite lock storms: Livewire polls + database queue +
# session/cache all writing the same sqlite file caused "database is locked".
SESSION_DRIVER: file
QUEUE_CONNECTION: database
CACHE_STORE: database
CACHE_STORE: file
BROADCAST_CONNECTION: reverb
FILESYSTEM_DISK: local
REVERB_APP_ID: ${REVERB_APP_ID:-andytranscribe}