yii 队列不检测数据库中的作业

yii queue doesn't detect jobs in database

我正在尝试 运行 使用 yii 的队列以便我可以做一些测试,但是每当我键入命令 yii queue/run 时,似乎没有工作等待,

这是发送作业的ID和状态的信息,当条件满足时,将在主页运行

这是将数据发送到队列中的代码:

class HorarioController extends Controller
{
public function actionBuscar()
{
    $hora = date("H").":00".":00";
    $dia = date("N");
 $horarios = Horarios_Equipos::find()->all();

    foreach($horarios as $horario)
    {

        echo $horario->id_equipo."\n";
        echo $horario->estado."\n";
        //enviar a cola

        Yii::$app->queue->push(
            new HorarioJob([
                'id_equipo' => $horario->id_equipo,
                'estado' => $horario->estado,                   
            ])
        );
    }

    return ExitCode::OK;
}

}

这是在队列中执行操作的代码

public function execute($queue)
 {

if($estado == '1'){
    if($pin == 1)
   {
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDa=ON');

    return $this->redirect(['view', 'id' => $id]);
}
    elseif ($pin == 2)
{
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDb=ON');

    return $this->redirect(['view', 'id' => $id]);
}

    elseif ($pin == 3)
{
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDc=ON');

    return $this->redirect(['view', 'id' => $id]);
}
    elseif ($pin == 4)
{
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '1';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDd=ON');

    return $this->redirect(['view', 'id' => $id]);
}



    }       

if ($estado == 0){

    if ($pin == '1')
    {
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDa=OFF');

    return $this->redirect(['view', 'id' => $id]);
}

    if ($pin == '2')
{
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDb=OFF');

    return $this->redirect(['view', 'id' => $id]);
}

    if ($pin == '3')
{
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDc=OFF');

    return $this->redirect(['view', 'id' => $id]);
}

    if ($pin == '4')
{
    $equipo = Equipos::find()->where(['id'=>$id])->one();
    $equipo->estado = '0';
    $equipo->save ();

    $curl = new curl\Curl();

    $response = $curl->get($equipo->ip.'/gpio/LEDd=OFF');

    return $this->redirect(['view', 'id' => $id]);
}

    }


}
}

这是我 运行 yii queue/run:

时显示的内容
C:\xampp\htdocs\accontrol>yii queue/run

C:\xampp\htdocs\accontrol>

如果我 运行 yii queue/info 它只显示这个:

C:\xampp\htdocs\accontrol>yii queue/info
Jobs
- waiting: 0
- delayed: 0
- reserved: 0
- done: 0

据我所知,写入队列函数的文件是正确的,我应该能够 运行 queue/run 命令,至少得到一个错误来查看我在哪里错了,但事实并非如此

发现问题,PHP 时区配置不正确,因此当它尝试在数据库中搜索时间时,它与配置的时间不匹配,不得不修改 php.ini 文档来设置正确的时区,如果您在输入 php.ini 文档时遇到这个问题,您可以通过控制面板来完成:在 Apache 部分单击配置按钮和 select PHP(php.ini) 然后使用查找选项并搜索时区,然后您可以输入您所在地区的时区,在我的例子中是 America/Mexico_City 在 link 中可以找到时区:https://www.php.net/manual/es/timezones.php