fix: server unreachable count
This commit is contained in:
@@ -46,28 +46,37 @@ class ContainerStatusJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
try {
|
try {
|
||||||
ray("checking server status for {$this->server->name}");
|
ray("checking server status for {$this->server->name}");
|
||||||
// ray()->clearAll();
|
// ray()->clearAll();
|
||||||
$serverUptimeCheckNumber = 0;
|
$serverUptimeCheckNumber = $this->server->unreachable_count;
|
||||||
$serverUptimeCheckNumberMax = 3;
|
$serverUptimeCheckNumberMax = 3;
|
||||||
while (true) {
|
|
||||||
ray('checking # ' . $serverUptimeCheckNumber);
|
ray('checking # ' . $serverUptimeCheckNumber);
|
||||||
if ($serverUptimeCheckNumber >= $serverUptimeCheckNumberMax) {
|
if ($serverUptimeCheckNumber >= $serverUptimeCheckNumberMax) {
|
||||||
if ($this->server->unreachable_email_sent === false) {
|
if ($this->server->unreachable_email_sent === false) {
|
||||||
ray('Server unreachable, sending notification...');
|
ray('Server unreachable, sending notification...');
|
||||||
// $this->server->team->notify(new Unreachable($this->server));
|
// $this->server->team->notify(new Unreachable($this->server));
|
||||||
}
|
|
||||||
$this->server->settings()->update([
|
|
||||||
'is_reachable' => false,
|
|
||||||
]);
|
|
||||||
$this->server->update(['unreachable_email_sent' => true]);
|
$this->server->update(['unreachable_email_sent' => true]);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
$result = $this->server->validateConnection();
|
$this->server->settings()->update([
|
||||||
if ($result) {
|
'is_reachable' => false,
|
||||||
break;
|
'unreachable_count' => 0,
|
||||||
}
|
]);
|
||||||
$serverUptimeCheckNumber++;
|
return;
|
||||||
sleep(5);
|
|
||||||
}
|
}
|
||||||
|
$result = $this->server->validateConnection();
|
||||||
|
if ($result) {
|
||||||
|
$this->server->settings()->update([
|
||||||
|
'is_reachable' => true,
|
||||||
|
'unreachable_count' => 0,
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$serverUptimeCheckNumber++;
|
||||||
|
$this->server->settings()->update([
|
||||||
|
'is_reachable' => false,
|
||||||
|
'unreachable_count' => $serverUptimeCheckNumber,
|
||||||
|
]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (data_get($this->server, 'unreachable_email_sent') === true) {
|
if (data_get($this->server, 'unreachable_email_sent') === true) {
|
||||||
ray('Server is reachable again, sending notification...');
|
ray('Server is reachable again, sending notification...');
|
||||||
// $this->server->team->notify(new Revived($this->server));
|
// $this->server->team->notify(new Revived($this->server));
|
||||||
@@ -82,7 +91,7 @@ class ContainerStatusJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
'is_usable' => true
|
'is_usable' => true
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
$this->server->validateDockerEngine(true);
|
// $this->server->validateDockerEngine(true);
|
||||||
$containers = instant_remote_process(["docker container ls -q"], $this->server);
|
$containers = instant_remote_process(["docker container ls -q"], $this->server);
|
||||||
if (!$containers) {
|
if (!$containers) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('servers', function (Blueprint $table) {
|
||||||
|
$table->integer('unreachable_count')->default(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('servers', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('unreachable_count');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user