ubuntu系统 本地的队列任务不执行了

上一周队列任务,本地还可以运行.不知道什么原因造成的,现在本地不执行了,但是测试环境上是可以运行的.我的redis启动了,也进行了监听
`
php artisan queue:listen
`

 use DispatchesJobs;
   /**
    * Bootstrap any application services.
    *
    * @return void
    */
   public function boot()
   {
       \DB::listen(function($sql, $bindings, $time) {
       });
       //创建订单的时候执行此队列
       OrderModel::created(function($order){
           $this->dispatch(new SendOrderUser($order));
//            \Log::info($order);
       });
   }

这里打印Log文件里是有数据的,下面任务里打印就没有数据了

class SendOrderUser extends Job implements SelfHandling, ShouldQueue
{
    use InteractsWithQueue, SerializesModels;
    protected $order;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(OrderModel $order)
    {
        $this->order = $order;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {

    }

请问是什么原因造成的,谢谢

那应该是 redis 的链接问题吧。。。还是确保 redis-server 正常启动了,或者你的 redis 配置

JellyBool

下面任务里打印就没有数据了 这个是在哪里打印没有数据?handle 方法还是?

OrderModel::created(function($order){
            $this->dispatch(new SendOrderUser($order));
//            \Log::info($order);
        });

以上代码是在哪个文件中?

================================

尝试一下这个:

        OrderModel::created(function($order) {
            dispatch(new SendOrderUser($order));
            // \Log::info($order);
        });

话说你的 laravel 是哪个版本

CaiLiguang

handle方法里打印没有数据

    public function __construct(OrderModel $order)
    {
        $this->order = $order;
这里还可以打印出来
    }
CaiLiguang

同事本地的就有数据,线上测试环境也是可以的,我上周也是没有问题的.这个问题是突然出现的

JellyBool 回复 CaiLiguang

你是说你同事和线上的代码都是正常的。。你的本地环境出了问题?

那基本上是环境问题吧。清缓存 artisan cache:clear 等

你具体handle的打印代码是什么样的

CaiLiguang 回复 JellyBool
public function handle()
    {
这里就没有数据了
        $username = OrderUserModel::where('username' , $this->order->buyer_name)->first();
        $phone = OrderUserModel::where('phone' , $this->order->buyer_phone)->first();
//        \Log::info($buyer_address);
//        \Log::info($this->order);
        if(($username && $phone) !=null){
            return;
        }
        $orderUser = new OrderUserModel();
        $orderUser->username = $this->order->buyer_name;
        $orderUser->phone = $this->order->buyer_phone;
        $orderUser->store_id = $this->order->store_id;
        $orderUser->type = $this->order->type;
        if($this->order->type == 2){
            return;
        }
        $orderUser->from_to = $this->order->store->platform;
        $orderUser->buyer_address = $this->order->buyer_address;
        $orderUser->buyer_province = $this->order->buyer_province;
        $orderUser->buyer_city = $this->order->buyer_city;
        $orderUser->buyer_county = $this->order->buyer_county;
        $orderUser->save();

    }

清缓存了,还是不可以

JellyBool 回复 CaiLiguang

不行的话,目前来说貌似看不出什么错。。。

CaiLiguang 回复 JellyBool

日志错误

[2016-12-15 15:54:20] local.ERROR: exception 'Predis\Connection\ConnectionException' with message 'Error while reading line from the server. [tcp://127.0.0.1:6379]' in /home/clg/project/kingfisher/vendor/predis/predis/src/Connection/AbstractConnection.php:155
Stack trace:
JellyBool 回复 CaiLiguang

那应该是 redis 的链接问题吧。。。还是确保 redis-server 正常启动了,或者你的 redis 配置

ABOTGAO

我也遇到了这个问题,队列文件里handle方法不执行,在handle里日志也没显示,我用的是homestead,按照文档里说的配置,而且配置没错,如果有错的话日志里就会报错而且整个队列都不会执行,并且homestead已经配置好了redis并且开机启动

CaiLiguang 回复 ABOTGAO

我本地是有这个问题,但是线上的项目是没问题的,不好意思啊

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教

ABOTGAO 回复 CaiLiguang

嗯嗯,我已经解决了,我用了php artisan queue:work --daemon这条命令,之前一直没加–daemon,所以只执行一次之后就不执行了。文档里也说最好加–daemon让任务持续执行。我是新手,还望多指教