情景:
公司目前在做一个邮件发送的功能,发邮件是用的第三方的,公司是考务公司,给考生发邮件,考生有时候会很多,所以需要写一个进程发送,现在写的是判断发送邮件进程是否正在运行,如果是,就表示还有邮件发送,退出进程,贴代码:
public function sendEmailsByCli(){
if (PHP_SAPI !== 'cli') {
echo 'only cli excute';exit;
}
//检查当前是否已有进程在执行
exec("ps -Af|grep sendEmailsByCli",$output,$return);
$count = 0;
if($output){
foreach($output as $row){
if(strpos($row,'index.php') !== false){//包含index.php就可以认为是当前程序的进程
$count++;
}
}
}
if($count>1){//说明已经有进程在跑,退出
echo "thread exist";exit;
}
//开始发送邮件
$limit = 20;
//......开始写发送邮件功能
}
注释:
PHP_SAPI 用来判断是使用命令行还是浏览器执行的,如果