作者 lyh

gx

<?php
/**
* @remark :
* @name :ServiceCount.php
* @author :lyh
* @method :post
* @time :2024/1/29 15:29
*/
namespace App\Console\Commands;
use App\Models\Devops\ServerConfig;
use App\Models\Project\Project;
use Illuminate\Console\Command;
class ServiceCount extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'service_count';
/**
* The console command description.
*
* @var string
*/
protected $description = '服务器数据库使用统计';
/**
* @remark :执行脚本
* @name :handle
* @author :lyh
* @method :post
* @time :2024/1/29 15:31
*/
public function handle(){
$this->serverConfigCount();
}
/**
* @remark :域名统计统计
* @name :domainCount
* @author :lyh
* @method :post
* @time :2024/1/29 15:33
*/
public function serverConfigCount(){
$model = new ServerConfig();
$list = $model->list();
$projectModel = new Project();
foreach ($list as $k => $v){
if($v['type'] == 1){
$count = $projectModel->formatQuery(['serve_id'=>$v['id']])->count();
//服务器
}else{
$count = $projectModel->formatQuery(['mysql_id'=>$v['id']])->count();
//数据库
}
$model->edit(['count'=>$count],['id'=>$v['id']]);
}
}
}
... ...
... ... @@ -26,6 +26,7 @@ class Kernel extends ConsoleKernel
$schedule->command('rank_data_week')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据,每周一凌晨执行一次
// $schedule->command('share_user')->dailyAt('01:00')->withoutOverlapping(1); // 清除用户ayr_share数据,每天凌晨1点执行一次
$schedule->command('count')->dailyAt('01:00')->withoutOverlapping(1); //每天凌晨1点执行一次
$schedule->command('service_count')->dailyAt('01:00')->withoutOverlapping(1); //服务器使用情况,每天凌晨1点执行一次
$schedule->command('web_traffic 1')->everyThirtyMinutes(); // 引流 1-3个月的项目,半小时一次
$schedule->command('web_traffic 2')->cron('*/18 * * * *'); // 引流 4-8个月的项目,18分钟一次
$schedule->command('web_traffic 3')->cron('*/12 * * * *'); // 引流 大于9个月的项目,12分钟一次
... ...