Laravel-队列按数据库工作,但不适用于redis

时间:2018-11-09 18:07:49

标签: laravel redis queue jobs predis

我的配置/代码如下:

// My .env file

BROADCAST_DRIVER=redis
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=redis


// My config/queue.php file

'default' => env('QUEUE_DRIVER', 'redis'),
'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => 'default',
        'retry_after' => 90,
        'block_for' => 5,
    ],


// My UserController

dispatch((new \App\Jobs\MyModel($phone))->delay(\Carbon\Carbon::now()->addMinutes(1)));

当我将QUEUE_DRIVERredis更改为database并在作业表中插入行时它正在工作,但是当我将其更改回redis时它将停止工作。我检查了laravel.log,那里的错误是[2018-11-09 21:12:27] local.ERROR: ERR unknown command 'EVAL' {"exception":"[object] (Predis\\Response\\ServerException(code: 0): ERR unknown command 'EVAL' at \\Path\\To\\My\\Project\\vendor\\predis\\predis\\src\\Client.php:370)

我忘记说我通过取消注释redis.confrequirepass文件中为Redis设置了密码,并且还在.env文件中将其设置为REDIS_PASSWORD = 1234。顺便说一句,我正在使用Windows的版本2.4.6的Redis。也许它无法正确启动,或者密码已完成操作。

我该如何解决? 谢谢

0 个答案:

没有答案