Redis 延时(普通)队列无法被监听或被消费
我的redis
配置
.env
QUEUE_CONNECTION=redis
REDIS_HOST=xxxxx
REDIS_PASSWORD=123456
REDIS_PORT=6379
配置文件
queue.php
'redis' => [
'driver' => 'redis',
'connection' => 'queues',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
'after_commit' => false,
],
database.php
'queues' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '1'),
],
任务类部份代码
class TimeoutSettlement implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct()
{
$this->onConnection('redis')
->onQueue('test_queue')
->delay(now()->addMinute());
}
}
运行的命令
php artisan queue:work redis --queue=test_queue
目前的问题
本地可以正常的发布与监听消费。
线上环境可以正常发布。但是监听无响应也无法消费
有大佬知道的吗。昨晚上线上还是正常的。今天一来就是监听的队列是无效了
破案 本帅分析你可能需要队列名称加上{},{test_name},并且监听他