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