Работа в очереди отказывается работать в Laravel - PullRequest
0 голосов
/ 11 июля 2019

Я использую базу данных в качестве драйвера очереди, и у меня есть длинный процесс, который я изменил, но теперь он не запускается.Я набираю $ job-> dispatchNow (), и он ничего не показывает, даже ноль.Если я запускаю очередь, она ставится в очередь, но на самом деле она никогда не запускается, а если я запускаю вторую очередь, она выдает «ошибка, потому что ее пытались много раз».Когда я проверяю базу данных через "SHOW PROCESSLIST;"Я не вижу запущенных запросов.Другие задания выполняются просто отлично.

Это вся работа https://pastebin.com/SrcfVgkZ

Из всего кода, который я предполагаю, может быть виновата эта функция, но я не уверен, что именно с ней не так.

  public function revisaInventarioPrevio() {
        $inventario = Dev_BCH::all();
        $users_zpec = ['RABELLEIRA', 'HCOTEIZA.ESE', 'EALVARADO'];
        $users_carga_inicial = ['FBERNSTEIN', 'ZEXPRIMEGROU'];
        foreach ($inventario as $dev) 
        {
            if ($this->checkZpecRetiroVenta($dev->serie)) {
                $dev->delete();
            }

            if ($dev->rotulo == "SIN INFORMACION") {
                $zpec_rotulo = Zpec::where('serie', $dev->serie)->orderBy('id','desc')->first();
                if ($zpec_rotulo) {
                    $dev->rotulo = $zpec_rotulo->rotulo;
                    $dev->guia = $zpec_rotulo->guia;
                    $dev->sap = $zpec_rotulo->sap;
                    $dev->fecha_instalacion = $zpec_rotulo->fecha;
                    $dev->save();
                }
                if ($dev->sap != "" ) {
                    $solped = \App\Solped::where('N_DOCUMENTO', $dev->sap)->orderBy('id', 'desc')->first();
                    if ($solped) {
                        $dev->ticket = $solped->TICKET;
                    } else {
                        $dev->ticket = "";
                    }
                    $dev->save();
                }
            } else {
                $zpec_rotulo = Zpec::where('serie', $dev->serie)->orderBy('id','desc')->first();
                if ($zpec_rotulo) {
                    $dev->guia = $zpec_rotulo->guia;
                    $dev->sap = $zpec_rotulo->sap;
                    $dev->fecha_instalacion = $zpec_rotulo->fecha;
                    $dev->save();
                }
                if (strlen($dev->sap) != 0) {
                    $solped = \App\Solped::where('N_DOCUMENTO', $dev->sap)->orderBy('id', 'desc')->first();
                    if ($solped) {
                        $dev->ticket = $solped->TICKET;
                    } else {
                        $dev->ticket = "";
                    }
                    $dev->save();
                }
            }

            $doc = explode(' ', $dev->fecha_reporte);
            // agregamos fechas
            if($doc[0] == 'SCCM') {
                $sccm = Sccm::where('serie', $dev->serie)->first();
                if($sccm) {
                    $dev->fecha_reporte = 'SCCM ' . $sccm->fecha_carga->format('d-m-Y');
                    $dev->ultima_conexion = $sccm->fecha_conexion;
                    $dev->save();
                }
            } else if ($doc[0] == 'BGINFO') {
                $bginfo = Bginfo::where('serie', $dev->serie)->first();
                if($bginfo) {
                    $dev->fecha_reporte = 'BGINFO ' . $bginfo->fecha_carga->format('d-m-Y');
                    $dev->ultima_conexion = $bginfo->fecha_conexion;
                    $dev->save();
                }
            }
            // En la columna GD catalogar como “CARGA POR INVENTARIO” si el usuario es RABELLEIRA, HCOTEIZA.ESE, EALVARADO.  
            // FBERNSTEIN y ZEXPRIMEGROU (Carga Inicial)
            if ($dev->guia == '' && $dev->sap == '' && $dev->fecha_instalacion) {
                $zpec = Zpec::where('serie', $dev->serie)->orderBy('id','desc')->first();
                    if (in_array($zpec->usuario, $users_zpec)) {
                        $dev->guia = 'CARGA POR INVENTARIO';
                        $dev->save();
                    } else if (in_array($zpec->usuario, $users_carga_inicial)) {
                        $dev->guia = 'CARGA INICIAL';
                        $dev->save();
                    }
            } else if ($dev->guia == '' && $dev->sap == '' && !$dev->fecha_instalacion) {
                //Si en GD y fecha de instalación figuran vacías, catalogar como “CARGA POR HERRAMIENTA DE BUSQUEDA SEGÚN SCCM/BGINFO” 
                $dev->guia = 'CARGA POR HERRAMIENTA DE BUSQUEDA';
                $dev->save();
            }


            // si no tenía el nombre lo buscamos en la nómina de empleados
            if ($dev->nombre == "SIN INFORMACION") {
                $username = $this->usuarioPorAlias($dev);
                if ($username) {
                    $emp = Bch_employee::where('username', $username)->first();
                }
                if (isset($emp)) {
                    $dev->nombre = $emp->name;
                    $dev->rut = $emp->rut;
                    $dev->save();
                }
            }


        }
    }

Дело в том, что ни PHP, ни Laravel не объясняют, почему эта работа или, по крайней мере, handle () даже не выполняется.

...