Я использую базу данных в качестве драйвера очереди, и у меня есть длинный процесс, который я изменил, но теперь он не запускается.Я набираю $ 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 () даже не выполняется.