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/analytic"
|
||||||
"github.com/0xJacky/Nginx-UI/internal/helper"
|
"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/cpu"
|
||||||
"github.com/shirou/gopsutil/v4/host"
|
"github.com/shirou/gopsutil/v4/host"
|
||||||
"github.com/shirou/gopsutil/v4/load"
|
"github.com/shirou/gopsutil/v4/load"
|
||||||
|
@ -91,7 +92,11 @@ func Analytic(c *gin.Context) {
|
||||||
break
|
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/analytic"
|
||||||
"github.com/0xJacky/Nginx-UI/internal/helper"
|
"github.com/0xJacky/Nginx-UI/internal/helper"
|
||||||
|
"github.com/0xJacky/Nginx-UI/internal/kernel"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
"github.com/uozi-tech/cosy/logger"
|
"github.com/uozi-tech/cosy/logger"
|
||||||
|
@ -36,7 +37,11 @@ func GetNodeStat(c *gin.Context) {
|
||||||
break
|
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
|
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/api"
|
||||||
"github.com/0xJacky/Nginx-UI/internal/cache"
|
"github.com/0xJacky/Nginx-UI/internal/cache"
|
||||||
"github.com/0xJacky/Nginx-UI/internal/cert"
|
"github.com/0xJacky/Nginx-UI/internal/cert"
|
||||||
|
"github.com/0xJacky/Nginx-UI/internal/kernel"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -58,6 +59,8 @@ func GetProcessingStatus(c *gin.Context) {
|
||||||
c.SSEvent("heartbeat", "")
|
c.SSEvent("heartbeat", "")
|
||||||
return false
|
return false
|
||||||
})
|
})
|
||||||
|
case <-kernel.Context.Done():
|
||||||
|
return
|
||||||
case <-notify:
|
case <-notify:
|
||||||
// Client disconnected
|
// Client disconnected
|
||||||
return
|
return
|
||||||
|
|
|
@ -30,9 +30,13 @@ import (
|
||||||
cSettings "github.com/uozi-tech/cosy/settings"
|
cSettings "github.com/uozi-tech/cosy/settings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var Context context.Context
|
||||||
|
|
||||||
func Boot(ctx context.Context) {
|
func Boot(ctx context.Context) {
|
||||||
defer recovery()
|
defer recovery()
|
||||||
|
|
||||||
|
Context = ctx
|
||||||
|
|
||||||
async := []func(){
|
async := []func(){
|
||||||
InitJsExtensionType,
|
InitJsExtensionType,
|
||||||
InitNodeSecret,
|
InitNodeSecret,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue