Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["server.go"],
importpath = "go-common/app/service/bbq/recsys-recall/server/grpc",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/bbq/recsys-recall/api/grpc/v1:go_default_library",
"//app/service/bbq/recsys-recall/service:go_default_library",
"//library/net/rpc/warden:go_default_library",
"//library/time:go_default_library",
"@org_golang_google_grpc//:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,46 @@
package grpc
import (
"context"
"flag"
"time"
v1 "go-common/app/service/bbq/recsys-recall/api/grpc/v1"
"go-common/app/service/bbq/recsys-recall/service"
"go-common/library/net/rpc/warden"
xtime "go-common/library/time"
"google.golang.org/grpc"
)
var (
_gRPCAddr string
)
func init() {
flag.StringVar(&_gRPCAddr, "grpc_addr", "0.0.0.0:9000", "default config path")
}
//New 生成rpc服务
func New(srv *service.Service) *warden.Server {
servConf := &warden.ServerConfig{
Addr: _gRPCAddr,
Timeout: xtime.Duration(2 * time.Second),
}
s := warden.NewServer(servConf)
s.Use(middleware())
v1.RegisterRecsysRecallServer(s.Server(), srv)
_, err := s.Start()
if err != nil {
panic("run server failed!" + err.Error())
}
return s
}
func middleware() grpc.UnaryServerInterceptor {
return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
//call chain
resp, err = handler(ctx, req)
return
}
}

View File

@@ -0,0 +1,36 @@
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["http.go"],
importpath = "go-common/app/service/bbq/recsys-recall/server/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/bbq/recsys-recall/api/grpc/v1:go_default_library",
"//app/service/bbq/recsys-recall/conf:go_default_library",
"//app/service/bbq/recsys-recall/service:go_default_library",
"//app/service/bbq/recsys-recall/service/index:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/binding:go_default_library",
"//library/net/http/blademaster/middleware/verify:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,138 @@
package http
import (
"fmt"
"net/http"
grpc "go-common/app/service/bbq/recsys-recall/api/grpc/v1"
"go-common/app/service/bbq/recsys-recall/conf"
"go-common/app/service/bbq/recsys-recall/service"
"go-common/app/service/bbq/recsys-recall/service/index"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
srv *service.Service
vfy *verify.Verify
)
// Init init
func Init(c *conf.Config) {
srv = service.New(c)
vfy = verify.New(c.Verify)
engine := bm.DefaultServer(c.BM)
route(engine)
if err := engine.Start(); err != nil {
log.Error("bm Start error(%v)", err)
panic(err)
}
}
func route(e *bm.Engine) {
e.Ping(ping)
e.Register(register)
g := e.Group("/bbq/internal/recall")
{
g.GET("/start", vfy.Verify, howToStart)
g.GET("/forward_index", forwardIndex)
g.GET("/inverted_index", invertedIndex)
g.GET("/recall", recall)
g.GET("/videos", videosByIndex)
g.POST("/new_income", newIncomeVideos)
}
}
func forwardIndex(c *bm.Context) {
args := struct {
Svid uint64 `form:"svid" json:"svid" validate:"required"`
}{}
var err error
if err = c.Bind(&args); err != nil {
log.Errorv(*c, log.KV("log", err))
return
}
if res := index.Index.Get(args.Svid); res != nil {
c.String(0, res.String())
return
}
c.String(0, "error: %v", err)
}
func invertedIndex(c *bm.Context) {
c.JSON(nil, nil)
}
func recall(c *bm.Context) {
args := struct {
MID int64 `json:"mid" form:"mid"`
BUVID string `json:"buvid" form:"buvid"`
TotalLimit int32 `json:"total_limit" form:"total_limit"`
Tag string `json:"tag" form:"tag"`
Name string `json:"name" form:"name"`
Scorer string `json:"scorer" form:"scorer"`
Filter string `json:"filter" form:"filter"`
Ranker string `json:"ranker" form:"ranker"`
Priority int32 `json:"priority" form:"priority"`
Limit int32 `json:"limit" form:"limit"`
}{}
if err := c.Bind(&args); err != nil {
return
}
req := &grpc.RecallRequest{
MID: args.MID,
BUVID: args.BUVID,
TotalLimit: args.TotalLimit,
Infos: []*grpc.RecallInfo{
{
Tag: args.Tag,
Name: args.Name,
Scorer: args.Scorer,
Filter: args.Filter,
Ranker: args.Ranker,
Priority: args.Priority,
Limit: args.Limit,
},
},
}
c.JSON(srv.Recall(c, req))
}
func newIncomeVideos(c *bm.Context) {
args := &grpc.NewIncomeVideoRequest{}
if err := c.BindWith(args, binding.JSON); err != nil {
return
}
fmt.Println(args)
c.JSON(srv.NewIncomeVideo(c, args))
}
func videosByIndex(c *bm.Context) {
args := &grpc.VideosByIndexRequest{}
if err := c.Bind(args); err != nil {
return
}
c.JSON(srv.VideosByIndex(c, args))
}
func ping(c *bm.Context) {
if err := srv.Ping(c); err != nil {
log.Error("ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func register(c *bm.Context) {
c.JSON(map[string]interface{}{}, nil)
}
// example for http request handler
func howToStart(c *bm.Context) {
c.String(0, "Golang 大法好 !!!")
}