|
@@ -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
|
|
|
@@ -48,7 +49,7 @@ class DevopsTask extends Command |
|
@@ -48,7 +49,7 @@ class DevopsTask extends Command |
|
48
|
while (true){
|
49
|
while (true){
|
|
49
|
$tasks = DevopsTaskModel::where('status', DevopsTaskModel::STATUS_PENDING)->get();
|
50
|
$tasks = DevopsTaskModel::where('status', DevopsTaskModel::STATUS_PENDING)->get();
|
|
50
|
foreach ($tasks as $task){
|
51
|
foreach ($tasks as $task){
|
|
51
|
- echo "Start task " . $task->id . PHP_EOL;
|
52
|
+ echo "Start task " . $task->id;
|
|
52
|
if($task->type == DevopsTaskModel::TYPE_MYSQL){
|
53
|
if($task->type == DevopsTaskModel::TYPE_MYSQL){
|
|
53
|
$this->updateTable($task);
|
54
|
$this->updateTable($task);
|
|
54
|
}
|
55
|
}
|
|
@@ -61,9 +62,10 @@ class DevopsTask extends Command |
|
@@ -61,9 +62,10 @@ class DevopsTask extends Command |
|
61
|
public function updateTable($task){
|
62
|
public function updateTable($task){
|
|
62
|
$projects = Project::all();
|
63
|
$projects = Project::all();
|
|
63
|
foreach ($projects as $project){
|
64
|
foreach ($projects as $project){
|
|
64
|
- echo "project " . $project->id;
|
65
|
+ echo "project " . $project->id . PHP_EOL;
|
|
65
|
$log = DevopsTaskLog::addLog($task->id, $project->id);
|
66
|
$log = DevopsTaskLog::addLog($task->id, $project->id);
|
|
66
|
if($log->status == DevopsTaskModel::STATUS_ACTIVE){
|
67
|
if($log->status == DevopsTaskModel::STATUS_ACTIVE){
|
|
|
|
68
|
+ echo 'continue' . PHP_EOL;
|
|
67
|
continue;
|
69
|
continue;
|
|
68
|
}
|
70
|
}
|
|
69
|
if(!$project->mysqlConfig){
|
71
|
if(!$project->mysqlConfig){
|
|
@@ -73,13 +75,22 @@ class DevopsTask extends Command |
|
@@ -73,13 +75,22 @@ class DevopsTask extends Command |
|
73
|
continue;
|
75
|
continue;
|
|
74
|
}
|
76
|
}
|
|
75
|
//DB类是单例模式,生命周期内修改配置不会生效
|
77
|
//DB类是单例模式,生命周期内修改配置不会生效
|
|
76
|
- $conn = new \mysqli(
|
|
|
|
77
|
- $project->mysqlConfig->host,
|
|
|
|
78
|
- $project->mysqlConfig->user,
|
|
|
|
79
|
- $project->mysqlConfig->password,
|
|
|
|
80
|
- $project->databaseName(),
|
|
|
|
81
|
- $project->mysqlConfig->port,
|
|
|
|
82
|
- );
|
78
|
+ $encrypt = new EncryptUtils();
|
|
|
|
79
|
+ try {
|
|
|
|
80
|
+ $conn = new \mysqli(
|
|
|
|
81
|
+ $project->mysqlConfig->host,
|
|
|
|
82
|
+ $encrypt->unlock_url($project->mysqlConfig->user),
|
|
|
|
83
|
+ $encrypt->unlock_url($project->mysqlConfig->password),
|
|
|
|
84
|
+ $project->databaseName(),
|
|
|
|
85
|
+ $encrypt->unlock_url($project->mysqlConfig->port),
|
|
|
|
86
|
+ );
|
|
|
|
87
|
+ }catch (\Exception $e){
|
|
|
|
88
|
+ $log->remark = mb_substr('数据库连接失败:' . $e->getMessage(), 0, 500);
|
|
|
|
89
|
+ $log->status = DevopsTaskLog::STATUS_ERROR;
|
|
|
|
90
|
+ $log->save();
|
|
|
|
91
|
+ echo '-->' . $log->remark . PHP_EOL;
|
|
|
|
92
|
+ continue;
|
|
|
|
93
|
+ }
|
|
83
|
$res = $conn->query($task->sql);
|
94
|
$res = $conn->query($task->sql);
|
|
84
|
|
95
|
|
|
85
|
$log->status = $res ? DevopsTaskLog::STATUS_ACTIVE : DevopsTaskLog::STATUS_ERROR;
|
96
|
$log->status = $res ? DevopsTaskLog::STATUS_ACTIVE : DevopsTaskLog::STATUS_ERROR;
|