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

时间:2019-05-23 00:25:21

标签: arduino yii2 queue esp8266

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

这是为了发送ID和职位状态的信息,这些信息将在满足条件时在主页上运行

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

--shell

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

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,
                'url1' =>  Url::to(['equipos/encender']),
                'url2' => Url::to(['equipos/apagar']),

            ])
        );
    }

    return ExitCode::OK;
}

}

这是我运行yii queue / run时显示的内容:

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 / info,它只会显示以下内容:

C:\xampp\htdocs\accontrol>yii queue/run

C:\xampp\htdocs\accontrol>

据我所知,写入队列函数的文件是正确的,并且我应该能够运行queue / run命令,至少会看到错误以查看错误之处,但事实并非如此

1 个答案:

答案 0 :(得分:0)

发现了问题,PHP的时区配置不正确,因此当它尝试在数据库上搜索时间时,它与配置的时间不匹配,因此必须修改php.ini文档以设置正确的时区,如果您在输入php.ini文档时遇到问题,可以通过控制面板进行操作:在Apache部分中,点击配置按钮,然后选择PHP(php.ini) 然后使用查找选项并搜索时区,然后您可以键入您所在地区的时区,在我的例子中是美国/墨西哥_城市 您可以在此处找到时区的链接:this commit