我主要做的是一個員工生日當天發短信的功能,每天跑一次腳本,
第一步:
a.App/模塊/ 下創建command文件夾
b.我這邊是創建在admin模塊裏面,在command文件夾下創建一個SendMessage.php文件(具體名字自己根據需求定)
c.複製下面的代碼到SendMessage.php
<?php
namespace app\admin\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\Db;
use think\Log;
class SendMessage extends Command
{
protected function configure(){
$this->setName('SendMessage')->setDescription("計劃任務 SendMessage");
}
//調用SendMessage 這個類時,會自動運行execute方法
protected function execute(Input $input, Output $output){
$output->writeln('Date Crontab job start...');
/*** 這裏寫計劃任務列表集 START ***/
$this->birthday();//發短信
/*** 這裏寫計劃任務列表集 END ***/
$output->writeln('Date Crontab job end...');
}
//獲取當天生日的員工 發短信
public function birthday()
{
echo '這裏寫你要實現的邏輯代碼';
}
}
第二步:在APP/command.php裏面加上
return ['app\admin\command\SendMessage'];
第三步:設置crontab計劃任務
-
crontab -l //計劃任務列表
-
crontab -e //編輯新增
-
crontab -r //刪除
爲了方便測試,可以先設置成每分鐘執行一次 ,記錄一下日誌/www/wwwroot/tool/runtime/message/2019.log
-
*/1 * * * * php /www/wwwroot/tool/think SendMessage>>/www/wwwroot/tool/runtime/message/2019.log 2>&1
-
//監控一下你的腳本是不是正常的
-
tail -f /www/wwwroot/tool/runtime/message/2019.log