有时候当我们开启Whlie自动化
又或者需要执行某些前置业务时,如果在public function run()
接口方法中编写代码,就会污染了原来的业务逻辑,
为此框架提供了一个public function front()
方法,用于在run()
接口方法前执行,并且不会受到Whlie自动化
开启的影响,front()
方法只会执行一次,
如果该方法返回false
则不会执行后续的run()
方法,同时如果开启了Whlie自动化
,也会终止,我们通过代码来举例:
<?php
namespace box\process;
use design\AbstractProcess;
class Demo extends AbstractProcess
{
/**
* 是否需要while(true) 永久堵塞
*/
public $onWhile = true;
/**
* 等待间隔时间(毫秒) 0不堵塞
*/
public $sleepS = 1000;
// 业务入口执行前的前置方法
public function front() {
// 如果返回false,run()则不会执行,while(true)也会终止
return false;
}
// 进程逻辑接口方法
public function run() {
$Redis = new \x\Redis();
// 读取一条队列信息
$info = $Redis->LPOP();
}
}