启动前hook处理
本文为您介绍如何在服务启动前进行hook处理操作。
服务初始化
在服务启动之前,您可以定义hookfunc方法,通过AddStartHook将其注册到启动流程中。启动服务之前,会依据注册顺序,依次调用hookfunc方法。
func main() {
pairec.AddStartHook(func() error {
precall.RegisterRecall("LiveRoomRecall", recall.NewLiveRoomRecall())
module.RegisterGenerateItemDataFunc(filter.GenerateExposureHistoryItemData)
prank.SetBoostFunc(rank.BoostScore)
return nil
})
pairec.Route("/api/rec/live_room_sync", &controller.LiveRoomSyncController{})
pairec.Route("/api/rec/live_feed", &controller.LiveFeedController{})
pairec.Run()
}
路由配置
与Golang中的HTTP包类似,pairec也提供了两种注册路由方式:
pairec.HandleFunc和HTTP中的HandleFunc类似。
HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "success") })
使用Controller注册pairec.Route。
Route("/api/recommend", &web.RecommendController{})
如果您提供自己的Controller,则需要实现ControllerInterface接口
type ControllerInterface interface { Process(http.ResponseWriter, *http.Request) }