|
...
|
...
|
@@ -5,6 +5,7 @@ namespace App\Console\Commands; |
|
|
|
|
|
|
|
use App\Models\Devops\DevopsTaskLog;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Utils\EncryptUtils;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use App\Models\Devops\DevopsTask as DevopsTaskModel;
|
|
|
|
|
|
...
|
...
|
@@ -48,7 +49,7 @@ class DevopsTask extends Command |
|
|
|
while (true){
|
|
|
|
$tasks = DevopsTaskModel::where('status', DevopsTaskModel::STATUS_PENDING)->get();
|
|
|
|
foreach ($tasks as $task){
|
|
|
|
echo "Start task " . $task->id . PHP_EOL;
|
|
|
|
echo "Start task " . $task->id;
|
|
|
|
if($task->type == DevopsTaskModel::TYPE_MYSQL){
|
|
|
|
$this->updateTable($task);
|
|
|
|
}
|
|
...
|
...
|
@@ -61,9 +62,10 @@ class DevopsTask extends Command |
|
|
|
public function updateTable($task){
|
|
|
|
$projects = Project::all();
|
|
|
|
foreach ($projects as $project){
|
|
|
|
echo "project " . $project->id;
|
|
|
|
echo "project " . $project->id . PHP_EOL;
|
|
|
|
$log = DevopsTaskLog::addLog($task->id, $project->id);
|
|
|
|
if($log->status == DevopsTaskModel::STATUS_ACTIVE){
|
|
|
|
echo 'continue' . PHP_EOL;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if(!$project->mysqlConfig){
|
|
...
|
...
|
@@ -73,13 +75,22 @@ class DevopsTask extends Command |
|
|
|
continue;
|
|
|
|
}
|
|
|
|
//DB类是单例模式,生命周期内修改配置不会生效
|
|
|
|
$encrypt = new EncryptUtils();
|
|
|
|
try {
|
|
|
|
$conn = new \mysqli(
|
|
|
|
$project->mysqlConfig->host,
|
|
|
|
$project->mysqlConfig->user,
|
|
|
|
$project->mysqlConfig->password,
|
|
|
|
$encrypt->unlock_url($project->mysqlConfig->user),
|
|
|
|
$encrypt->unlock_url($project->mysqlConfig->password),
|
|
|
|
$project->databaseName(),
|
|
|
|
$project->mysqlConfig->port,
|
|
|
|
$encrypt->unlock_url($project->mysqlConfig->port),
|
|
|
|
);
|
|
|
|
}catch (\Exception $e){
|
|
|
|
$log->remark = mb_substr('数据库连接失败:' . $e->getMessage(), 0, 500);
|
|
|
|
$log->status = DevopsTaskLog::STATUS_ERROR;
|
|
|
|
$log->save();
|
|
|
|
echo '-->' . $log->remark . PHP_EOL;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$res = $conn->query($task->sql);
|
|
|
|
|
|
|
|
$log->status = $res ? DevopsTaskLog::STATUS_ACTIVE : DevopsTaskLog::STATUS_ERROR;
|
...
|
...
|
|