作者 lyh

项目选择服务器

... ... @@ -16,6 +16,7 @@ use App\Models\File\File as FileModel;
use App\Models\File\Image;
use App\Models\File\Image as ImageModel;
use App\Models\Product\Keyword;
use App\Models\Product\Product;
use App\Models\Project\DeployOptimize;
use App\Models\Project\MinorLanguages;
use App\Models\Project\Project;
... ... @@ -42,83 +43,38 @@ class Demo extends Command
*/
protected $description = 'demo';
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$project_id = 1;
$servers_id = 1;
//查看當前項目服務器是否有更改
public function handle(){
$keywordVideoModel = new KeywordVideoTask();
$project_id_arr = $keywordVideoModel::where('id','>',0)->pluck('project_id')->toArray();
$projectModel = new Project();
$projectInfo = $projectModel->read(['id'=>$project_id],['serve_id']);
if(!empty($projectInfo['serve_id'])){
if($projectInfo['serve_id'] == $servers_id){
echo 2;
}
$list = $projectModel->list(['type'=>['!=',0],'delete_status'=>0,'id'=>['in',$project_id_arr]]);
$data = [];
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
ProjectServer::useProject($v['id']);
$this->getProductList();
DB::disconnect('custom_mysql');
}
$serversIpModel = new ServersIp();
$serversIpInfo = $serversIpModel->read(['project_arr'=>['like','%,'.$project_id.',%']]);
if($serversIpInfo !== false){
$string = str_replace(','.$project_id.',',',',$serversIpInfo['project_arr']);
if($string == ','){
$string = '';
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
}
public function getProductList(){
$productModel = new Product();
$lists = $productModel::whereRaw('LENGTH(keyword_id) > 50')->get()->toArray();
foreach ($lists as $k => $v){
echo date('Y-m-d H:i:s') . '项目id:'.$v['project_id'].'+产品product_id:'.$v['id'] . PHP_EOL;
$str = ',';
foreach ($v['keyword_id'] as $key => $value){
if($key == 6){
break;
}
$str .= $value.',';
}
$serversIpModel->edit(['project_arr'=>$string],['id'=>$serversIpInfo['id']]);
}
$info = $serversIpModel->read(['id'=>$servers_id]);
$serversModel = new Servers();
$serversInfo = $serversModel->read(['id'=>$info['servers_id']]);
if($serversInfo['being_number'] >= $serversInfo['total']){
echo '请选择其他服务器,当前服务器已满';
}
$project_arr = explode(',',trim($info['project_arr'],','));
if(count($project_arr) >= $serversInfo['ip_total']){
echo '请选择其他服务器,当前ip已满';
}
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($project_arr, true) . PHP_EOL, FILE_APPEND);
@file_put_contents(storage_path('logs/lyh_error.log'), var_export($project_id, true) . PHP_EOL, FILE_APPEND);
if(!in_array($project_id,$project_arr) || empty($project_arr)){
array_push($project_arr,$project_id);
$project_str = ','.implode(',',$project_arr).',';
$serversIpModel->edit(['project_arr'=>$project_str,'total'=>count($project_arr)],['id'=>$servers_id]);
$serversModel->where(['id'=>$info['servers_id']])->increment('being_number');
$productModel->edit(['keyword_id'=>$str],['id'=>$v['id']]);
}
echo 1;
return true;
}
//
// $fileModel = new FileModel();
// $fileList = $fileModel->list(['project_id'=>$this->param['project_id'],'is_cos'=>1],'id',['id','path','is_cos','name']);
// if(!empty($fileList)){
// $amazonS3Service = new AmazonS3Service();
// foreach ($fileList as $k => $v){
// echo date('Y-m-d H:i:s') . '执行的数据id:' . $v['id'] . '名称:'.$v['name'] . PHP_EOL;
// $amazonS3Service->syncImageFiles(getFileUrl($v['path']));
// $fileModel->edit(['is_cos'=>0],['id'=>$v['id']]);
// gc_collect_cycles();
// }
// }
// return true;
// }
// public function handle(){
// $keywordVideoModel = new KeywordVideoTask();
// $project_id_arr = $keywordVideoModel::where('id','>',0)->pluck('project_id')->toArray();
// $projectModel = new Project();
// $list = $projectModel->list(['type'=>['!=',0],'delete_status'=>0,'id'=>['in',$project_id_arr]]);
// $data = [];
// foreach ($list as $v){
// echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
// ProjectServer::useProject($v['id']);
// $this->saveKeyword();
// DB::disconnect('custom_mysql');
// }
// echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
// }
//
// /**
// * @remark :关键字有视频的改为1
// * @name :getProductKeywordInfo
... ...