Yii2 yii队列不';无法检测数据库中的作业

Yii2 yii队列不';无法检测数据库中的作业,yii2,queue,esp8266,Yii2,Queue,Esp8266,我正在尝试使用yii运行队列,以便进行一些测试,但每当我键入命令yii queue/run时,似乎都没有作业处于等待状态 这是为了发送作业的ID和状态信息,当满足条件时,将在主页中运行该作业 这是将数据发送到队列的代码: class HorarioController extends Controller { public function actionBuscar() { $hora = date("H").":00".":00"; $dia = date("N"); $ho

我正在尝试使用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队列/运行时显示的内容:

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部分中,单击config按钮并选择php(php.ini) 然后使用find选项并搜索时区,然后您可以键入您所在地区的时区,在我的例子中是America/Mexico_City
以下是您可以找到时区的链接:

发现问题,PHP的时区配置不正确,因此当它试图在数据库中搜索与其配置的时间不匹配的时间时,必须修改PHP.ini文档以设置正确的时区,如果您在输入php.ini文档时遇到此问题,您可以通过控制面板执行此操作:在Apache部分中,单击config按钮并选择php(php.ini) 然后使用find选项并搜索时区,然后您可以键入您所在地区的时区,在我的例子中是America/Mexico_City
这里是您可以找到时区的链接:

是否执行
/yii队列/运行--详细显示任何内容(您需要先将作业推送到队列)?C:\xampp\htdocs\acontrol>yii队列/运行-v 2019-06-14 23:50:12[pid:9320]-工作人员已启动2019-06-14 23:50:12[pid:9320]-工作人员已停止(0:00)您的队列中没有任何作业。你确定你正确地推送了它们吗?据我所知,代码编写正确,应该将作业推送到数据库中,但它没有这样做,我看过许多代码示例,但它们都是一样的,我不知道有什么不同。有没有办法知道代码何时没有推送作业?这似乎是问题所在,但我不知道它是否推送它们
/yii queue/run--verbose
显示了什么(您需要先将作业推送到队列)?C:\xampp\htdocs\acontrol>yii queue/run-v 2019-06-14 23:50:12[pid:9320]-工作已启动2019-06-14 23:50:12[pid:9320]-工作已停止(0:00:00)您的队列中没有任何作业。你确定你正确地推送了它们吗?据我所知,代码编写正确,应该将作业推送到数据库中,但它没有这样做,我看过许多代码示例,但它们都是一样的,我不知道有什么不同。有没有办法知道代码何时没有推送作业?这似乎是个问题,但我不知道这是否会推动他们