我正在尝试配置我的Laravel应用程序,使所有的Laravel队列失败作业都进入Redis而不是mysql。
目前我的作业已经配置为使用redis,但是failed_jobs仍然进入了MySql数据库。
在StackOverflow/Laravel上没有找到任何相关资料
Laravel 5.4
Redis
PHP 7.0
请帮忙解决!
要将Laravel配置为将失败的作业存储在Redis而不是MySQL中,您需要在Laravel应用程序中进行一些更改。
.env
文件中指定的数据库连接中。要更改此设置,请打开config/queue.php
文件并找到failed
配置数组。将database
键更新为使用Redis连接。例如:'failed' => [
'database' => 'redis', // Update this to use the Redis connection
],
在Redis中创建失败的作业表:即使您使用Redis,Laravel也需要一个表来存储失败的作业。要在Redis中创建此表,请在终端中运行以下命令:php artisan queue:failed-table
php artisan migrate
database
连接来处理失败的作业。要更改此设置,请再次打开config/queue.php
文件,并找到connections
数组。将redis
连接更新为包含failed
配置。例如:'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
'failed' => [
'database' => 'redis', // Update this to use the Redis connection
],
],
php artisan queue:restart
config/database.php
文件以确保Redis配置正确。config/queue.php
中,你应该找到以下值:'failed' => [
'database' => env('DB_CONNECTION', 'mysql'),
'table' => env('QUEUE_FAILED_TABLE', 'failed_jobs'),
]
根据需要更改连接和表。