mirror of
https://github.com/hamster1963/HomeDash-Backend.git
synced 2025-06-17 20:51:24 +08:00
update: 初始化代码提交
This commit is contained in:
170
internal/boot/boot.go
Normal file
170
internal/boot/boot.go
Normal file
@ -0,0 +1,170 @@
|
||||
package boot
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/os/gcron"
|
||||
"github.com/gogf/gf/v2/os/gctx"
|
||||
"github.com/gogf/gf/v2/os/glog"
|
||||
"home-network-watcher/utility/ha_utils"
|
||||
"home-network-watcher/utility/network_utils"
|
||||
"home-network-watcher/utility/server_utils"
|
||||
"home-network-watcher/utility/uptime_utils"
|
||||
)
|
||||
|
||||
// Boot
|
||||
//
|
||||
// @dc: 定时任务启动
|
||||
// @return: error
|
||||
func Boot() (err error) {
|
||||
_, err = gcron.AddOnce(context.TODO(), "@every 1s", func(ctx context.Context) {
|
||||
glog.Debug(context.Background(), "定时任务启动中...")
|
||||
if err := bootMethod(); err != nil {
|
||||
glog.Fatal(context.Background(), "定时任务启动失败: ", err)
|
||||
}
|
||||
glog.Debug(context.Background(), "定时任务启动成功")
|
||||
}, "开始启动定时任务")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = gcron.AddOnce(context.TODO(), "@every 15s", func(ctx context.Context) {
|
||||
glog.Info(context.Background(), "定时任务测试中...")
|
||||
if err := bootCheck(); err != nil {
|
||||
glog.Fatal(context.Background(), "定时任务测试失败: ", err)
|
||||
} else {
|
||||
glog.Info(context.Background(), "定时任务测试成功")
|
||||
}
|
||||
}, "开始测试定时任务")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// bootCheck
|
||||
//
|
||||
// @Description: 定时任务测试
|
||||
// @return error
|
||||
func bootCheck() (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
// bootMethod
|
||||
// @Description: 定时任务启动
|
||||
// @return error
|
||||
func bootMethod() (err error) {
|
||||
var ctx = gctx.New()
|
||||
|
||||
glog.Notice(ctx, "开始获取科学上网网速")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 1s", func(ctx context.Context) {
|
||||
err = network_utils.ProxyNetwork.GetProxyNetwork()
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取代理速度"+err.Error())
|
||||
}
|
||||
}, "获取代理速度")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
glog.Notice(ctx, "开始获取家庭路由器网速")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 1s", func(ctx context.Context) {
|
||||
err = network_utils.NetworkUtils.GetHomeNetwork()
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取家庭路由器速度"+err.Error())
|
||||
}
|
||||
}, "获取家庭路由器速度")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
glog.Notice(ctx, "开始获取当前代理节点信息")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 5s", func(ctx context.Context) {
|
||||
err = network_utils.NodeUtils.GetNodeInfo()
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取当前代理节点信息"+err.Error())
|
||||
}
|
||||
}, "获取当前代理节点信息")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 进行第一次机场信息缓存
|
||||
err = network_utils.ProxyProvider.GetSubscribeInfo()
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取机场订阅信息失败"+err.Error())
|
||||
}
|
||||
|
||||
glog.Notice(ctx, "开始获取机场订阅信息")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 10m", func(ctx context.Context) {
|
||||
err = network_utils.ProxyProvider.GetSubscribeInfo()
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取机场订阅信息失败"+err.Error())
|
||||
}
|
||||
}, "开始获取机场订阅信息")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 获取服务器信息
|
||||
glog.Notice(ctx, "开始获取服务器信息")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 1s", func(ctx context.Context) {
|
||||
err = server_utils.Nezha.GetAllServerInfo(ctx)
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取服务器信息失败"+err.Error())
|
||||
}
|
||||
}, "开始获取服务器信息")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 获取 xui 信息
|
||||
glog.Notice(ctx, "开始获取 xui 信息")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 5s", func(ctx context.Context) {
|
||||
err = network_utils.ProxyNetwork.GetXuiUserList()
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取 xui 信息失败"+err.Error())
|
||||
}
|
||||
}, "开始获取 xui 信息")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 获取服务概览信息
|
||||
glog.Notice(ctx, "开始获取服务概览信息")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 10s", func(ctx context.Context) {
|
||||
err = server_utils.ServerCron.CronGetDockerAndMonitor(ctx)
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取服务概览信息失败"+err.Error())
|
||||
}
|
||||
}, "开始获取服务概览信息")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 获取 UptimeKuma 信息
|
||||
glog.Notice(ctx, "开始获取 UptimeKuma 信息")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 10s", func(ctx context.Context) {
|
||||
err = uptime_utils.Kuma.GetUptimeData(ctx)
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取 UptimeKuma 信息失败"+err.Error())
|
||||
}
|
||||
}, "开始获取 UptimeKuma 信息")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 获取智能家居信息
|
||||
glog.Notice(ctx, "开始获取智能家居信息")
|
||||
_, err = gcron.AddSingleton(ctx, "@every 1s", func(ctx context.Context) {
|
||||
err = ha_utils.HaUtils.GetEntitiesInfo(ctx)
|
||||
if err != nil {
|
||||
glog.Warning(ctx, "获取智能家居信息失败"+err.Error())
|
||||
}
|
||||
}, "开始获取智能家居信息")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user