作者 赵彬吉

update

@@ -5,6 +5,7 @@ namespace App\Console\Commands; @@ -5,6 +5,7 @@ namespace App\Console\Commands;
5 5
6 use App\Models\Devops\DevopsTaskLog; 6 use App\Models\Devops\DevopsTaskLog;
7 use App\Models\Project\Project; 7 use App\Models\Project\Project;
  8 +use App\Utils\EncryptUtils;
8 use Illuminate\Console\Command; 9 use Illuminate\Console\Command;
9 use App\Models\Devops\DevopsTask as DevopsTaskModel; 10 use App\Models\Devops\DevopsTask as DevopsTaskModel;
10 11
@@ -73,13 +74,22 @@ class DevopsTask extends Command @@ -73,13 +74,22 @@ class DevopsTask extends Command
73 continue; 74 continue;
74 } 75 }
75 //DB类是单例模式,生命周期内修改配置不会生效 76 //DB类是单例模式,生命周期内修改配置不会生效
  77 + $encrypt = new EncryptUtils();
  78 + try {
76 $conn = new \mysqli( 79 $conn = new \mysqli(
77 $project->mysqlConfig->host, 80 $project->mysqlConfig->host,
78 - $project->mysqlConfig->user,  
79 - $project->mysqlConfig->password, 81 + $encrypt->unlock_url($project->mysqlConfig->user),
  82 + $encrypt->unlock_url($project->mysqlConfig->password),
80 $project->databaseName(), 83 $project->databaseName(),
81 - $project->mysqlConfig->port, 84 + $encrypt->unlock_url($project->mysqlConfig->port),
82 ); 85 );
  86 + }catch (\Exception $e){
  87 + $log->remark = mb_substr('数据库连接失败:' . $e->getMessage(), 500);
  88 + $log->status = DevopsTaskLog::STATUS_ERROR;
  89 + $log->save();
  90 + echo '-->' . $log->remark . PHP_EOL;
  91 + continue;
  92 + }
83 $res = $conn->query($task->sql); 93 $res = $conn->query($task->sql);
84 94
85 $log->status = $res ? DevopsTaskLog::STATUS_ACTIVE : DevopsTaskLog::STATUS_ERROR; 95 $log->status = $res ? DevopsTaskLog::STATUS_ACTIVE : DevopsTaskLog::STATUS_ERROR;