From 6bb79e10bce984fbfced897aa595ae5df794ee15 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 8 Dec 2023 22:51:42 +0100 Subject: [PATCH] fix: double ws connection --- app/Actions/CoolifyTask/RunRemoteProcess.php | 11 +++-- app/Data/CoolifyTaskArgs.php | 1 + app/Enums/ProcessStatus.php | 1 + resources/views/layouts/app.blade.php | 42 +++++++++++++++++++ resources/views/layouts/base.blade.php | 40 ------------------ .../views/livewire/activity-monitor.blade.php | 2 +- 6 files changed, 53 insertions(+), 44 deletions(-) diff --git a/app/Actions/CoolifyTask/RunRemoteProcess.php b/app/Actions/CoolifyTask/RunRemoteProcess.php index ef0c9e59b..327d46c68 100644 --- a/app/Actions/CoolifyTask/RunRemoteProcess.php +++ b/app/Actions/CoolifyTask/RunRemoteProcess.php @@ -27,7 +27,7 @@ class RunRemoteProcess protected $last_write_at = 0; - protected $throttle_interval_ms = 500; + protected $throttle_interval_ms = 200; protected int $counter = 1; @@ -74,8 +74,14 @@ class RunRemoteProcess $this->time_start = hrtime(true); $status = ProcessStatus::IN_PROGRESS; - $processResult = Process::forever()->run($this->getCommand(), $this->handleOutput(...)); + $timeout = config('constants.ssh.command_timeout'); + $process = Process::timeout($timeout)->start($this->getCommand(), $this->handleOutput(...)); + $this->activity->properties = $this->activity->properties->merge([ + 'process_id' => $process->id(), + ]); + $processResult = $process->wait(); + // $processResult = Process::timeout($timeout)->run($this->getCommand(), $this->handleOutput(...)); if ($this->activity->properties->get('status') === ProcessStatus::ERROR->value) { $status = ProcessStatus::ERROR; } else { @@ -131,7 +137,6 @@ class RunRemoteProcess } $this->current_time = $this->elapsedTime(); $this->activity->description = $this->encodeOutput($type, $output); - if ($this->isAfterLastThrottle()) { // Let's write to database. DB::transaction(function () { diff --git a/app/Data/CoolifyTaskArgs.php b/app/Data/CoolifyTaskArgs.php index 584fadb98..cc717561f 100644 --- a/app/Data/CoolifyTaskArgs.php +++ b/app/Data/CoolifyTaskArgs.php @@ -16,6 +16,7 @@ class CoolifyTaskArgs extends Data public string $command, public string $type, public ?string $type_uuid = null, + public ?int $process_id = null, public ?Model $model = null, public ?string $status = null , public bool $ignore_errors = false, diff --git a/app/Enums/ProcessStatus.php b/app/Enums/ProcessStatus.php index 889aca9f2..0031cabdd 100644 --- a/app/Enums/ProcessStatus.php +++ b/app/Enums/ProcessStatus.php @@ -8,5 +8,6 @@ enum ProcessStatus: string case IN_PROGRESS = 'in_progress'; case FINISHED = 'finished'; case ERROR = 'error'; + case KILLED = 'killed'; case CANCELLED = 'cancelled'; } diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index ca5d427c5..47bc35b5d 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -11,4 +11,46 @@
{{ $slot }}
+ @endsection diff --git a/resources/views/layouts/base.blade.php b/resources/views/layouts/base.blade.php index c6a5d6edc..40464ef46 100644 --- a/resources/views/layouts/base.blade.php +++ b/resources/views/layouts/base.blade.php @@ -46,46 +46,6 @@