65 lines
2.0 KiB
Go
65 lines
2.0 KiB
Go
package main
|
||
|
||
import (
|
||
"flag"
|
||
"fmt"
|
||
"github.com/zeromicro/go-zero/core/conf"
|
||
"github.com/zeromicro/go-zero/core/service"
|
||
"github.com/zeromicro/go-zero/zrpc"
|
||
"gitlink.org.cn/JointCloud/pcm-modelarts/internal/pkg/cron"
|
||
imagesserviceServer "gitlink.org.cn/JointCloud/pcm-modelarts/internal/server/imagesservice"
|
||
modelartsserviceServer "gitlink.org.cn/JointCloud/pcm-modelarts/internal/server/modelartsservice"
|
||
"gitlink.org.cn/JointCloud/pcm-modelarts/internal/svc"
|
||
"gitlink.org.cn/JointCloud/pcm-modelarts/internal/util"
|
||
"gitlink.org.cn/JointCloud/pcm-modelarts/modelarts"
|
||
"gitlink.org.cn/JointCloud/pcm-modelarts/routers"
|
||
"google.golang.org/grpc"
|
||
"google.golang.org/grpc/reflection"
|
||
"sync"
|
||
)
|
||
|
||
// startGinServer 启动Gin框架的服务
|
||
func startGinServer(wg *sync.WaitGroup) {
|
||
rt, _ := routers.InitRouter(nil)
|
||
fmt.Printf("Start GIN server success\n")
|
||
rt.Run(":2025")
|
||
}
|
||
|
||
// startGoZeroServer 启动go-zero框架的服务(这里是一个简化的示例)
|
||
func startGoZeroServer(wg *sync.WaitGroup) {
|
||
flag.StringVar(&util.FileName, "f", "etc/pcmmodelarts.yaml", "the config file")
|
||
flag.Parse()
|
||
conf.MustLoad(util.FileName, &util.C)
|
||
ctx := svc.NewServiceContext(util.C)
|
||
|
||
s := zrpc.MustNewServer(util.C.RpcServerConf, func(grpcServer *grpc.Server) {
|
||
modelarts.RegisterModelArtsServiceServer(grpcServer, modelartsserviceServer.NewModelArtsServiceServer(ctx))
|
||
modelarts.RegisterImagesServiceServer(grpcServer, imagesserviceServer.NewImagesServiceServer(ctx))
|
||
if util.C.Mode == service.DevMode || util.C.Mode == service.TestMode {
|
||
reflection.Register(grpcServer)
|
||
}
|
||
})
|
||
defer s.Stop()
|
||
// 启动并添加定时任务
|
||
ctx.Cron.Start()
|
||
cron.AddCronGroup(ctx)
|
||
fmt.Printf("Starting rpc server at %s...\n", util.C.ListenOn)
|
||
s.Start()
|
||
}
|
||
|
||
func main() {
|
||
var wg sync.WaitGroup
|
||
|
||
// 启动Gin服务
|
||
wg.Add(1)
|
||
go startGinServer(&wg)
|
||
|
||
// 启动go-zero服务
|
||
wg.Add(1)
|
||
go startGoZeroServer(&wg)
|
||
|
||
// 等待两个服务都启动完成(实际上,由于服务是长期运行的,这里会一直等待)
|
||
wg.Wait()
|
||
|
||
}
|