mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-10 18:05:48 +02:00
fix: implement context handling in analytic and processing functions for graceful shutdown
This commit is contained in:
parent
710b9f781e
commit
fc507ccd3b
4 changed files with 24 additions and 3 deletions
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"github.com/0xJacky/Nginx-UI/internal/analytic"
|
||||
"github.com/0xJacky/Nginx-UI/internal/helper"
|
||||
"github.com/0xJacky/Nginx-UI/internal/kernel"
|
||||
"github.com/shirou/gopsutil/v4/cpu"
|
||||
"github.com/shirou/gopsutil/v4/host"
|
||||
"github.com/shirou/gopsutil/v4/load"
|
||||
|
@ -91,7 +92,11 @@ func Analytic(c *gin.Context) {
|
|||
break
|
||||
}
|
||||
|
||||
time.Sleep(1 * time.Second)
|
||||
select {
|
||||
case <-kernel.Context.Done():
|
||||
return
|
||||
case <-time.After(1 * time.Second):
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/0xJacky/Nginx-UI/internal/analytic"
|
||||
"github.com/0xJacky/Nginx-UI/internal/helper"
|
||||
"github.com/0xJacky/Nginx-UI/internal/kernel"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gorilla/websocket"
|
||||
"github.com/uozi-tech/cosy/logger"
|
||||
|
@ -36,7 +37,11 @@ func GetNodeStat(c *gin.Context) {
|
|||
break
|
||||
}
|
||||
|
||||
time.Sleep(10 * time.Second)
|
||||
select {
|
||||
case <-kernel.Context.Done():
|
||||
return
|
||||
case <-time.After(10 * time.Second):
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,6 +70,10 @@ func GetNodesAnalytic(c *gin.Context) {
|
|||
break
|
||||
}
|
||||
|
||||
time.Sleep(10 * time.Second)
|
||||
select {
|
||||
case <-kernel.Context.Done():
|
||||
return
|
||||
case <-time.After(10 * time.Second):
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/0xJacky/Nginx-UI/api"
|
||||
"github.com/0xJacky/Nginx-UI/internal/cache"
|
||||
"github.com/0xJacky/Nginx-UI/internal/cert"
|
||||
"github.com/0xJacky/Nginx-UI/internal/kernel"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
|
@ -58,6 +59,8 @@ func GetProcessingStatus(c *gin.Context) {
|
|||
c.SSEvent("heartbeat", "")
|
||||
return false
|
||||
})
|
||||
case <-kernel.Context.Done():
|
||||
return
|
||||
case <-notify:
|
||||
// Client disconnected
|
||||
return
|
||||
|
|
|
@ -30,9 +30,13 @@ import (
|
|||
cSettings "github.com/uozi-tech/cosy/settings"
|
||||
)
|
||||
|
||||
var Context context.Context
|
||||
|
||||
func Boot(ctx context.Context) {
|
||||
defer recovery()
|
||||
|
||||
Context = ctx
|
||||
|
||||
async := []func(){
|
||||
InitJsExtensionType,
|
||||
InitNodeSecret,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue