很多时候我们都会在构造函数中注入很多我们需要的其他类,如下:
public function __construct(Token $tokenRedis)
{
$this->tokenRedis = $tokenRedis;
}
但是当 command中使用有redis连接的注入类时,然后command中的脚本需要定时执行时,在jenkins构建应用时便会报错,报错信息如下:
其实就是提示说redis连接有问题,但是redis的配置是肯定没有问题的,因此觉得应该是redis类注入有问题。
解决方式:只需要将含有redis连接的注入类挪到 handle方法注入即可,如下:
public function handle(Token $tokenRedis)
{
.....
}
同样,laravel中job,由于构造函数中对应的对象是dispatch传入的类,若要使用其他注入类,也放在handle中注入即可。程序中其他如Listener中,构造方法注入和handle中注入均可



