This commit is contained in:
Irfan 2022-02-18 05:23:22 +05:00
parent c1d1f8465f
commit 7617235ec6
4 changed files with 9 additions and 15 deletions

2
.gitignore vendored
View File

@ -9,3 +9,5 @@ composer.lock
.env.v4
/storage/app/indexer
/storage/app/failovers.json
/storage/app/source_failover_last_downtime
/storage/app/source_failover.lock

View File

@ -15,7 +15,7 @@ use Monolog\Logger;
class SourceHeartbeatListener
{
private $logger;
private Logger $logger;
/**
* Create the event listener.
@ -76,6 +76,7 @@ class SourceHeartbeatListener
{
// create lock file
Storage::put('source_failover.lock', '');
Storage::put('source_failover_last_downtime', time());
if (env('APP_DEBUG', false)) {
$this->logger->debug('Failover ENABLED');
@ -91,7 +92,7 @@ class SourceHeartbeatListener
Storage::delete('failovers.json');
}
private function attemptDisableFailover()
private function attemptDisableFailover(): bool
{
$score = $this->getSuccessfulRequestsScore();
@ -108,7 +109,7 @@ class SourceHeartbeatListener
return false;
}
private function getLastFailoverLockTimestamp()
private function getLastFailoverLockTimestamp(): int
{
try {
return Storage::lastModified('source_failover.lock');

View File

@ -30,7 +30,7 @@ class SourceHeartbeatProvider extends ServiceProvider
public static function getLastDowntime() : int
{
try {
return Storage::lastModified('source_failover.lock');
return Storage::lastModified('source_failover_last_downtime');
} catch (\Exception $e) {
return 0;
}
@ -67,9 +67,7 @@ class SourceHeartbeatProvider extends ServiceProvider
}
}
$scored = $score / max($totalFails, 1);
return $scored;
return $score / max($totalFails, 1);
}
public static function getHeartbeatStatus() : string

View File

@ -80,11 +80,9 @@ if (env('INSIGHTS', false)) {
$app->middleware($globalMiddleware);
$app->routeMiddleware([
// 'slave-auth' => App\Http\Middleware\SlaveAuthentication::class,
// 'meta' => App\Http\Middleware\Meta::class,
// 'cache-resolver' => App\Http\Middleware\CacheResolver::class,
// 'throttle' => App\Http\Middleware\Throttle::class,
// 'etag' => \App\Http\Middleware\EtagMiddleware::class,
'microcaching' => \App\Http\Middleware\MicroCaching::class,
'source-health-monitor' => SourceHeartbeatMonitor::class,
]);
@ -153,11 +151,6 @@ $app->instance('SerializerV4', SerializerFactory::createV4());
*/
$commonMiddleware = [
// 'slave-auth',
// 'meta',
// 'etag',
// 'database-resolver',
// 'cache-resolver',
// 'throttle'
'source-health-monitor',
'microcaching',