67 lines
1.9 KiB
Go
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)
|
|
}
|