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:
+2
-2
@@ -27,7 +27,7 @@ DB_CONNECTION=sqlite
|
|||||||
# DB_USERNAME=root
|
# DB_USERNAME=root
|
||||||
# DB_PASSWORD=
|
# DB_PASSWORD=
|
||||||
|
|
||||||
SESSION_DRIVER=database
|
SESSION_DRIVER=file
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
SESSION_ENCRYPT=false
|
SESSION_ENCRYPT=false
|
||||||
SESSION_PATH=/
|
SESSION_PATH=/
|
||||||
@@ -37,7 +37,7 @@ BROADCAST_CONNECTION=reverb
|
|||||||
FILESYSTEM_DISK=local
|
FILESYSTEM_DISK=local
|
||||||
QUEUE_CONNECTION=database
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
CACHE_STORE=database
|
CACHE_STORE=file
|
||||||
# CACHE_PREFIX=
|
# CACHE_PREFIX=
|
||||||
|
|
||||||
MEMCACHED_HOST=127.0.0.1
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|||||||
+2
-1
@@ -38,7 +38,8 @@ return [
|
|||||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
'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',
|
'journal_mode' => 'WAL',
|
||||||
'synchronous' => 'NORMAL',
|
'synchronous' => 'NORMAL',
|
||||||
'transaction_mode' => 'DEFERRED',
|
'transaction_mode' => 'DEFERRED',
|
||||||
|
|||||||
+4
-2
@@ -14,9 +14,11 @@ x-app-env: &app-env
|
|||||||
LOG_CHANNEL: stderr
|
LOG_CHANNEL: stderr
|
||||||
DB_CONNECTION: sqlite
|
DB_CONNECTION: sqlite
|
||||||
DB_DATABASE: /app/database/database.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
|
QUEUE_CONNECTION: database
|
||||||
CACHE_STORE: database
|
CACHE_STORE: file
|
||||||
BROADCAST_CONNECTION: reverb
|
BROADCAST_CONNECTION: reverb
|
||||||
FILESYSTEM_DISK: local
|
FILESYSTEM_DISK: local
|
||||||
REVERB_APP_ID: ${REVERB_APP_ID:-andytranscribe}
|
REVERB_APP_ID: ${REVERB_APP_ID:-andytranscribe}
|
||||||
|
|||||||
Reference in New Issue
Block a user