1. 編輯crontab
ps:第27行為1分鐘執行一次,結果存到*/root/log/sms.log*中,包括輸出和錯誤資訊。
2. 編寫shell指令碼
ps:每秒執行一次 **for**迴圈中的內容,sleep $step=1!
3. 執行結果
ps:以上實現了每秒輸出一個數字!如將do迴圈中內容替換成下圖所示兩行即可實現,每秒執行一次./yii sms/sendsms (sms控制器中 `sendsms` 方法)!
ps:以上將結果重定向到sms.log日誌中!
4. 定時觸發
ps:8:30 或者8:40執行!
5. php程式碼
public function actionSendsms($mobile='xxxxx'){
$newCommentCount = Comment::find()->where(['remind'=>0,'status'=>1])->count();//未提醒的新評論 (remind提醒控制,status稽核控制)
if($newCommentCount > 0){
$content = '您有'.$newCommentCount.'條新評論!請稽核!';
$newCommentCount = sprintf('%08d',$newCommentCount);//格式化輸出給變數;不同於printf格式化輸出到螢幕,可以重定向
$sendMessage = new SendTemplateSMS();//傳送簡訊介面
$sendMessage = $sendMessage->send_message($mobile,$newCommentCount);
if($sendMessage){//傳送成功
Comment::updateAll(['remind'=>1]);//把提醒標誌全部設為已提醒
echo '['.date('Y-m-d h:i:s',time()).']'.$content.'['.strlen($content).']'."\r\n";//記錄日誌
}else{//傳送失敗
var_dump($sendMessage);
return 0;
}
}else{//不存在未提醒評論
return 0;
}
}