diff --git a/app/Jobs/ContainerStatusJob.php b/app/Jobs/ContainerStatusJob.php index 15dad0a06..a8b2c1a9a 100644 --- a/app/Jobs/ContainerStatusJob.php +++ b/app/Jobs/ContainerStatusJob.php @@ -22,10 +22,10 @@ class ContainerStatusJob implements ShouldQueue, ShouldBeEncrypted { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; - public $tries = 5; + public $tries = 4; public function backoff(): int { - return isDev() ? 1 : 5; + return isDev() ? 1 : 3; } public function middleware(): array { diff --git a/app/Jobs/ServerStatusJob.php b/app/Jobs/ServerStatusJob.php index 58f30b18d..96fc8f75c 100644 --- a/app/Jobs/ServerStatusJob.php +++ b/app/Jobs/ServerStatusJob.php @@ -17,22 +17,30 @@ class ServerStatusJob implements ShouldQueue, ShouldBeEncrypted use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public ?int $disk_usage = null; + public $tries = 4; + public function backoff(): int + { + return isDev() ? 1 : 3; + } public function __construct(public Server $server) { } public function middleware(): array { - return [(new WithoutOverlapping($this->server->id))->dontRelease()]; + return [(new WithoutOverlapping($this->server->uuid))]; } public function uniqueId(): int { - return $this->server->id; + return $this->server->uuid; } - public function handle(): void + public function handle() { ray("checking server status for {$this->server->id}"); + if (!$this->server->isServerReady(4)) { + throw new \RuntimeException('Server is not reachable.'); + }; try { if ($this->server->isFunctional()) { $this->cleanup(notify: false); @@ -40,7 +48,7 @@ class ServerStatusJob implements ShouldQueue, ShouldBeEncrypted } catch (\Throwable $e) { send_internal_notification('ServerStatusJob failed with: ' . $e->getMessage()); ray($e->getMessage()); - handleError($e); + return handleError($e); } } public function cleanup(bool $notify = false): void diff --git a/app/Livewire/Server/New/ByIp.php b/app/Livewire/Server/New/ByIp.php index 1849cdfbc..ba94063cd 100644 --- a/app/Livewire/Server/New/ByIp.php +++ b/app/Livewire/Server/New/ByIp.php @@ -93,7 +93,7 @@ class ByIp extends Component $server->settings->is_swarm_worker = $this->is_swarm_worker; $server->settings->save(); $server->addInitialNetwork(); - return $this->redirectRoute('server.show', $server->uuid, navigate: true); + return $this->redirectRoute('server.show', $server->uuid); } catch (\Throwable $e) { return handleError($e, $this); } diff --git a/app/Models/Server.php b/app/Models/Server.php index 285ce01db..7cc0983c0 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -151,7 +151,12 @@ class Server extends BaseModel } public function isServerReady(int $tries = 3) { - $serverUptimeCheckNumber = $this->unreachable_count + 1; + if ($this->skipServer()) { + return false; + } + if ($this->unreachable_count < $tries) { + $serverUptimeCheckNumber = $this->unreachable_count + 1; + } $serverUptimeCheckNumberMax = $tries; ray('server: ' . $this->name); diff --git a/config/horizon.php b/config/horizon.php index 14d20e1cf..060e67bad 100644 --- a/config/horizon.php +++ b/config/horizon.php @@ -216,7 +216,7 @@ return [ ], 'long-running' => [ 'autoScalingStrategy' => 'size', - 'maxProcesses' => env('HORIZON_MAX_PROCESSES', 2), + 'maxProcesses' => env('HORIZON_MAX_PROCESSES', 6), 'balanceMaxShift' => env('HORIZON_BALANCE_MAX_SHIFT', 1), 'balanceCooldown' => env('HORIZON_BALANCE_COOLDOWN', 1), ], @@ -231,7 +231,7 @@ return [ ], 'long-running' => [ 'autoScalingStrategy' => 'size', - 'maxProcesses' => env('HORIZON_MAX_PROCESSES', 2), + 'maxProcesses' => env('HORIZON_MAX_PROCESSES', 6), 'balanceMaxShift' => env('HORIZON_BALANCE_MAX_SHIFT', 1), 'balanceCooldown' => env('HORIZON_BALANCE_COOLDOWN', 1), ], diff --git a/config/sentry.php b/config/sentry.php index b24ec892f..e4fbdc97a 100644 --- a/config/sentry.php +++ b/config/sentry.php @@ -7,7 +7,7 @@ return [ // The release version of your application // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD')) - 'release' => '4.0.0-beta.165', + 'release' => '4.0.0-beta.166', // When left empty or `null` the Laravel environment will be used 'environment' => config('app.env'), diff --git a/config/version.php b/config/version.php index a0b2aca88..313acc6cc 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@