diff --git a/cmd/api/main.go b/cmd/api/main.go index a1f69b3..4083492 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -2,17 +2,16 @@ package main import ( "context" - "git.vtb.link/eoefans/internal/pkg/log" - "github.com/getsentry/sentry-go" - "go.uber.org/zap" - "time" - - "git.vtb.link/eoefans/internal/app" + "git.vtb.link/eoefans/internal/app/api" "git.vtb.link/eoefans/internal/app/api/service" "git.vtb.link/eoefans/internal/launcher" "git.vtb.link/eoefans/internal/pkg/database" "git.vtb.link/eoefans/internal/pkg/httpserver" + "git.vtb.link/eoefans/internal/pkg/log" + "github.com/getsentry/sentry-go" "go.uber.org/fx" + "go.uber.org/zap" + "time" ) func main() { @@ -23,7 +22,7 @@ func newAPI() fx.Option { return fx.Options( database.Provide(), httpserver.Provide(), - app.Provide(), + api.Provide(), fx.Invoke(lc), ) } @@ -37,26 +36,26 @@ func lc( ) { lifecycle.Append(fx.Hook{ OnStart: func(ctx context.Context) error { - return ginServer.Start() + *logger = *log.ModifyToSentryLogger(logger, client) + return nil }, OnStop: func(ctx context.Context) error { - return ginServer.Stop() + client.Flush(2 * time.Second) + return nil }, }) + lifecycle.Append(fx.Hook{ OnStart: func(ctx context.Context) error { - return randPicsCache.Run() + return ginServer.Start() + }, + OnStop: func(ctx context.Context) error { + return ginServer.Stop() }, }) - lifecycle.Append(fx.Hook{ OnStart: func(ctx context.Context) error { - *logger = *log.ModifyToSentryLogger(logger, client) - return nil - }, - OnStop: func(ctx context.Context) error { - client.Flush(2 * time.Second) - return nil + return randPicsCache.Run() }, }) } diff --git a/cmd/spider/main.go b/cmd/spider/main.go index f4af4db..f295f09 100644 --- a/cmd/spider/main.go +++ b/cmd/spider/main.go @@ -2,14 +2,15 @@ package main import ( "context" - "git.vtb.link/eoefans/internal/app/spider" "git.vtb.link/eoefans/internal/app/spider/health" - "git.vtb.link/eoefans/internal/app/spider/video_analysis" "git.vtb.link/eoefans/internal/launcher" - "git.vtb.link/eoefans/internal/pkg/bilibili" "git.vtb.link/eoefans/internal/pkg/database" + "git.vtb.link/eoefans/internal/pkg/log" + "github.com/getsentry/sentry-go" "go.uber.org/fx" + "go.uber.org/zap" + "time" ) func main() { @@ -19,14 +20,8 @@ func main() { func newSpider() fx.Option { return fx.Options( database.Provide(), - video_analysis.Provide(), - fx.Provide(spider.NewVideo), - fx.Provide(spider.NewUpdate), - fx.Provide(spider.NewPicture), - fx.Provide(spider.NewUpdateDynamic), - fx.Provide(bilibili.NewSDK), - fx.Provide(health.NewCheckServer), fx.Invoke(lc), + spider.Provide(), ) } @@ -38,7 +33,20 @@ func lc( spiderUpdatePicture *spider.UpdateDynamic, checkServer *health.CheckServer, shutdown fx.Shutdowner, + logger *zap.Logger, + client *sentry.Client, ) { + lifecycle.Append(fx.Hook{ + OnStart: func(ctx context.Context) error { + *logger = *log.ModifyToSentryLogger(logger, client) + return nil + }, + OnStop: func(ctx context.Context) error { + client.Flush(2 * time.Second) + return nil + }, + }) + lifecycle.Append(fx.Hook{ OnStart: func(ctx context.Context) error { return spiderVideo.Run(ctx) diff --git a/go.mod b/go.mod index 4972c97..74d85e4 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module git.vtb.link/eoefans go 1.18 require ( + github.com/TheZeroSlave/zapsentry v1.14.0 github.com/getsentry/sentry-go v0.18.0 github.com/gin-contrib/zap v0.1.0 github.com/gin-gonic/gin v1.9.0 @@ -21,7 +22,6 @@ require ( ) require ( - github.com/TheZeroSlave/zapsentry v1.14.0 // indirect github.com/bytedance/sonic v1.8.1 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect diff --git a/internal/app/provide.go b/internal/app/api/provide.go similarity index 98% rename from internal/app/provide.go rename to internal/app/api/provide.go index b70ab49..9364148 100644 --- a/internal/app/provide.go +++ b/internal/app/api/provide.go @@ -1,4 +1,4 @@ -package app +package api import ( "git.vtb.link/eoefans/internal/app/api/middlewares" diff --git a/internal/app/spider/provide.go b/internal/app/spider/provide.go new file mode 100644 index 0000000..44d1eb1 --- /dev/null +++ b/internal/app/spider/provide.go @@ -0,0 +1,23 @@ +package spider + +import ( + "git.vtb.link/eoefans/internal/app/spider/health" + "git.vtb.link/eoefans/internal/app/spider/video_analysis" + "git.vtb.link/eoefans/internal/pkg/bilibili" + "git.vtb.link/eoefans/internal/pkg/log" + "go.uber.org/fx" +) + +func Provide() fx.Option { + return fx.Options( + fx.Provide(log.NewSentryConfig, log.NewSentry), + video_analysis.Provide(), + + fx.Provide(NewVideo), + fx.Provide(NewUpdate), + fx.Provide(NewPicture), + fx.Provide(NewUpdateDynamic), + fx.Provide(bilibili.NewSDK), + fx.Provide(health.NewCheckServer), + ) +}