From 04ee269f23745a9f2cf4a55b93ef10bded78bc27 Mon Sep 17 00:00:00 2001 From: Liosha84 Date: Wed, 28 Oct 2026 22:04:40 +0100 Subject: [PATCH] remake of REST Controllers --- .../system/SystemMetricsController.java | 43 +++++++++++-------- .../system/SystemProcessesController.java | 10 +++-- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/backend/src/main/java/com/htopweb/system/SystemMetricsController.java b/backend/src/main/java/com/htopweb/system/SystemMetricsController.java index d16c753..fa0d912 100644 --- a/backend/src/main/java/com/htopweb/system/SystemMetricsController.java +++ b/backend/src/main/java/com/htopweb/system/SystemMetricsController.java @@ -5,6 +5,10 @@ import com.htopweb.system.linux.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; + +import java.util.List; @RestController @RequestMapping("/api/system") @@ -12,9 +16,7 @@ public class SystemMetricsController { private final SystemMetricsService _systemMetricsService; private final LinuxDetailsService _linuxDetailsService; - - private final CpuDetailsService _cpuDetailsService; - + private final CpuDetailsService _cpuDetailsService; private final LinuxMemoryService _linuxMemoryService; private final LinuxDiskService _linuxDiskService; private final LinuxNetworkService _linuxNetworkService; @@ -23,8 +25,9 @@ public class SystemMetricsController { SystemMetricsService systemMetricsService, LinuxDetailsService linuxDetailsService, CpuDetailsService cpuDetailsService, - LinuxMemoryService linuxMemoryService, LinuxDiskService linuxDiskService, LinuxNetworkService linuxNetworkService - + LinuxMemoryService linuxMemoryService, + LinuxDiskService linuxDiskService, + LinuxNetworkService linuxNetworkService ) { _systemMetricsService = systemMetricsService; _linuxDetailsService = linuxDetailsService; @@ -35,32 +38,38 @@ public class SystemMetricsController { } @GetMapping("/metrics") - public SystemMetricsResponse getMetrics() { - return _systemMetricsService.getMetrics(); + public Mono getMetrics() { + return Mono.fromCallable(_systemMetricsService::getMetrics) + .subscribeOn(Schedulers.boundedElastic()); } @GetMapping("/linux") - public LinuxDetailsResponse getLinuxDetails() { - return _linuxDetailsService.getDetails(); + public Mono getLinuxDetails() { + return Mono.fromCallable(_linuxDetailsService::getDetails) + .subscribeOn(Schedulers.boundedElastic()); } @GetMapping("/cpu") - public CpuDetailsResponse getCpuDetails() { - return _cpuDetailsService.getDetails(); + public Mono getCpuDetails() { + return Mono.fromCallable(_cpuDetailsService::getDetails) + .subscribeOn(Schedulers.boundedElastic()); } @GetMapping("/linux/memory") - public LinuxMemoryResponse getLinuxMemory() { - return _linuxMemoryService.getDetails(); + public Mono getLinuxMemory() { + return Mono.fromCallable(_linuxMemoryService::getDetails) + .subscribeOn(Schedulers.boundedElastic()); } @GetMapping("/linux/disks") - public java.util.List getLinuxDisks() { - return _linuxDiskService.getDisks(); + public Mono> getLinuxDisks() { + return Mono.fromCallable(_linuxDiskService::getDisks) + .subscribeOn(Schedulers.boundedElastic()); } @GetMapping("/linux/network") - public java.util.List getLinuxNetwork() { - return _linuxNetworkService.getInterfaces(); + public Mono> getLinuxNetwork() { + return Mono.fromCallable(_linuxNetworkService::getInterfaces) + .subscribeOn(Schedulers.boundedElastic()); } } diff --git a/backend/src/main/java/com/htopweb/system/SystemProcessesController.java b/backend/src/main/java/com/htopweb/system/SystemProcessesController.java index 1a65d84..f52c17f 100644 --- a/backend/src/main/java/com/htopweb/system/SystemProcessesController.java +++ b/backend/src/main/java/com/htopweb/system/SystemProcessesController.java @@ -1,8 +1,11 @@ + package com.htopweb.system; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; import java.util.List; @@ -19,7 +22,8 @@ public class SystemProcessesController { } @GetMapping("/processes") - public List getProcesses() { - return _systemProcessesService.getProcesses(); + public Mono> getProcesses() { + return Mono.fromCallable(_systemProcessesService::getProcesses) + .subscribeOn(Schedulers.boundedElastic()); } -} \ No newline at end of file +}