Laravel Telescope 未監聽 Redis

mution發表於2019-08-14

最近新建一個5.8的專案,呼叫了Redis,但是在Telescope介面重新整理了好幾次,在Redis那裡一直無資料,後來看了下原始碼,發現Telescope監聽的是Redis的CommandExecuted:

public function register($app)
    {
        $app['events']->listen(CommandExecuted::class, [$this, 'recordCommand']);
    }

而Redis的configure函式中有進行相關判斷

protected function configure(Connection $connection, $name)
    {
        $connection->setName($name);

        if ($this->events && $this->app->bound('events')) {
            $connection->setEventDispatcher($this->app->make('events'));
        }

        return $connection;
    }

但是Redis的$events屬性預設為false,導致Reids執行命令時無法監聽對應事件,解決思路就是修改Redis的這個$events屬性了:

$this->app['redis']->enableEvents();
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章