Files
2026-07-16 14:34:06 +08:00

67 lines
1.9 KiB
Go

package main
import (
"dataengine/common/report"
"dataengine/controller/debug"
"dataengine/controller/dict"
"dataengine/controller/public"
reportCtrl "dataengine/controller/report"
syncCtrl "dataengine/controller/sync"
syncSvc "dataengine/service/sync"
"os"
"os/signal"
"syscall"
"gitea.redpowerfuture.com/red-future/common/http"
"gitea.redpowerfuture.com/red-future/common/jaeger"
_ "gitea.redpowerfuture.com/red-future/common/k3sconfig"
_ "github.com/gogf/gf/contrib/drivers/pgsql/v2"
_ "github.com/gogf/gf/contrib/nosql/redis/v2"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
"github.com/sirupsen/logrus"
)
func main() {
ctx := gctx.New()
defer jaeger.ShutDown(ctx)
// 内部调度开关(默认关闭,由 PPGo_Job 通过 HTTP 端点统一调度)
extractEnabled := g.Cfg().MustGet(ctx, "report.extract_enabled", false).Bool()
syncEnabled := g.Cfg().MustGet(ctx, "sync.auto_sync_enabled", false).Bool()
if extractEnabled || syncEnabled {
if syncEnabled {
syncSvc.InitAndStartAutoSync(ctx)
}
if extractEnabled {
report.StartDailyExtractJob()
}
logrus.Infof("[main] 内部调度已启用 extract=%v sync=%v", extractEnabled, syncEnabled)
} else {
logrus.Info("[main] 内部调度已禁用,由 PPGo_Job 外部调度")
}
http.RouteRegister([]interface{}{
// 接口管理
dict.ApiInterface,
dict.DatasourcePlatform,
// 平台同步引擎
syncCtrl.PlatformSyncController,
// 公共查询接口
public.PublicQuery,
// 报表引擎 CRUD API
reportCtrl.ReportController,
})
// 管理后台页面
g.Server().BindHandler("/admin", debug.DebugController.DebugPage)
// 报表引擎管理页面
g.Server().BindHandler("/admin/report", reportCtrl.ReportAdminPage)
// 捕获退出信号,实现优雅关闭
quit := make(chan os.Signal, 1)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
sig := <-quit
logrus.Infof("收到信号 %v,正在退出...", sig)
}