增加 Cluster Nodes
This commit is contained in:
parent
fa41bf5da3
commit
c04c83ec67
@ -3,12 +3,13 @@
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Support\Cluster;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class ServerController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request)
|
||||
public function module_reports(Request $request)
|
||||
{
|
||||
$servers = Cache::get('servers', []);
|
||||
|
||||
@ -21,4 +22,10 @@ public function __invoke(Request $request)
|
||||
|
||||
return $this->success($servers);
|
||||
}
|
||||
|
||||
public function nodes() {
|
||||
$nodes = Cluster::nodes(true);
|
||||
|
||||
return $this->success($nodes);
|
||||
}
|
||||
}
|
||||
|
@ -97,9 +97,33 @@ public static function forever($key, $value): void
|
||||
self::set($key, $value, -1);
|
||||
}
|
||||
|
||||
public static function hget($key, $value, $default = null): string|array|null
|
||||
public static function hget($key, $hashKey, $default = []): string|array|null
|
||||
{
|
||||
return Redis::hget($key, $value, $default);
|
||||
$value = Redis::hget(self::$prefix . $key, $hashKey);
|
||||
|
||||
return $value ?: $default;
|
||||
}
|
||||
|
||||
public static function hgetAll($hashKey, $default = []): array
|
||||
{
|
||||
$value = Redis::hgetall(self::$prefix . $hashKey);
|
||||
|
||||
return $value ?: $default;
|
||||
}
|
||||
|
||||
public static function nodes($hide_ip = false): array
|
||||
{
|
||||
$nodes = self::hgetAll('nodes');
|
||||
|
||||
foreach ($nodes as $key => $node) {
|
||||
$nodes[$key] = json_decode($node, true);
|
||||
|
||||
if ($hide_ip) {
|
||||
unset($nodes[$key]['ip']);
|
||||
}
|
||||
}
|
||||
|
||||
return $nodes;
|
||||
}
|
||||
|
||||
public static function registerThisNode($report = true): void
|
||||
|
@ -20,10 +20,12 @@
|
||||
|
||||
Route::resource('balances', BalanceController::class);
|
||||
|
||||
Route::get('servers', ServerController::class);
|
||||
|
||||
Route::get('servers', [ServerController::class, 'module_reports']);
|
||||
Route::get('nodes', [ServerController::class, 'nodes']);
|
||||
Route::get('modules', [ModuleController::class, 'index']);
|
||||
|
||||
|
||||
Route::resource('tasks', TaskController::class)->only(['index', 'show']);
|
||||
|
||||
Route::get('forum/announcements', [ForumController::class, 'pinned']);
|
||||
|
Loading…
Reference in New Issue
Block a user