【问题标题】:Events don't work laravel, in the queue, the process is in progress and gives an error事件不起作用 laravel,在队列中,进程正在进行中并给出错误
【发布时间】:2021-04-02 12:34:02
【问题描述】:

创建了一个事件,它在本地工作,上传到服务器停止工作。

[2021-04-02 14:26:51] local.ERROR: Class 'Redis' not found {"exception":"[object] (Error(code: 0): Class 'Redis' not found at /供应商/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:75) [堆栈跟踪]

如何连接 Redis?

PrivatMessageEvent.php

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class PrivatMessageEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $data;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new Channel('private-channel');
    }
}

当我启动队列时,我可以看到此事件正在进行中,但给出了失败。

脚本刀片模板

 socket.on("private-channel:App\\Events\\PrivatMessageEvent", function (message) {
                appendMessageToReceiver(message);
            });

配置\bd

   'redis' => [
        'client' => env('REDIS_CLIENT', 'phpredis'),
        'cluster' => false,
        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'database' => 0,
            'port' => env('REDIS_PORT', '6379'),
        ]
    ]

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    你能确认你已经安装并启用了 phpredis 扩展吗?

    请查看 Laravel 文档中的介绍部分:https://laravel.com/docs/8.x/redis#introduction

    【讨论】:

    • 我的配置文件。 'redis' => [ 'client' => env('REDIS_CLIENT', 'phpredis'), 'cluster' => false, 'default' => [ 'host' => env('REDIS_HOST', '127.0.0.1 '), '数据库' => 0, '端口' => env('REDIS_PORT', '6379'), ] ]
    • 谢谢,但您需要一些额外的依赖项才能实际使用 Redis 实现。尝试运行pecl install rediscomposer require predis/predis
    • @РомаЛытарь 检查您在.env 中设置的REDIS_CLIENT
    • .env REDIS_CLIENT 里面什么都没有,应该有什么?
    • 作曲家需要 predis/predis 完成。我检查了萝卜的状态,它是活跃的
    猜你喜欢
    • 2017-10-29
    • 2014-11-10
    • 2020-10-05
    • 2018-03-09
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多