diff --git a/worker/go.mod b/worker/go.mod index 39905ff..5b63938 100644 --- a/worker/go.mod +++ b/worker/go.mod @@ -4,30 +4,21 @@ go 1.25.5 require ( github.com/hibiken/asynq v0.25.1 - github.com/redis/go-redis/v9 v9.17.2 github.com/samber/lo v1.51.0 github.com/spf13/cast v1.10.0 - github.com/spf13/viper v1.21.0 go.uber.org/zap v1.27.0 ) require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/pelletier/go-toml/v2 v2.2.4 // indirect + github.com/redis/go-redis/v9 v9.17.2 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/sagikazarmark/locafero v0.12.0 // indirect - github.com/spf13/afero v1.15.0 // indirect - github.com/spf13/pflag v1.0.10 // indirect - github.com/subosito/gotenv v1.6.0 // indirect + github.com/stretchr/testify v1.11.1 // indirect go.uber.org/multierr v1.11.0 // indirect - go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/sys v0.36.0 // indirect golang.org/x/text v0.29.0 // indirect golang.org/x/time v0.13.0 // indirect google.golang.org/protobuf v1.36.9 // indirect - gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect ) diff --git a/worker/go.sum b/worker/go.sum index 1011804..90b7f34 100644 --- a/worker/go.sum +++ b/worker/go.sum @@ -10,10 +10,6 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= -github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= -github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -24,8 +20,6 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= -github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/redis/go-redis/v9 v9.17.2 h1:P2EGsA4qVIM3Pp+aPocCJ7DguDHhqrXNhVcEp4ViluI= @@ -34,30 +28,18 @@ github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= -github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI= github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= -github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= -github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= -github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= -github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= -github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= -github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= -go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= @@ -66,8 +48,5 @@ golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/worker/internal/tasks/file.go b/worker/internal/tasks/file.go index 54f7257..2fe5498 100644 --- a/worker/internal/tasks/file.go +++ b/worker/internal/tasks/file.go @@ -6,6 +6,7 @@ import ( "os" "path/filepath" "pkg/models" + u "pkg/utils" "worker/internal/utils" "github.com/hibiken/asynq" @@ -29,7 +30,7 @@ func RemoveFile(ctx context.Context, task *asynq.Task) error { return nil } - rdb, rctx := utils.GetRedisClient() + rdb, rctx := u.GetRedisClient() uploadPath, err := utils.GetUploadDirPath() if err != nil { return err diff --git a/worker/internal/tasks/share.go b/worker/internal/tasks/share.go index 74878d2..7ad80a5 100644 --- a/worker/internal/tasks/share.go +++ b/worker/internal/tasks/share.go @@ -6,6 +6,7 @@ import ( "os" "path/filepath" "pkg/models" + u "pkg/utils" "worker/internal/utils" "github.com/hibiken/asynq" @@ -30,7 +31,7 @@ func RemoveShare(ctx context.Context, task *asynq.Task) error { return x != payload.ShareId }) if len(shareIDs) == 0 { - rdb, ctx := utils.GetRedisClient() + rdb, ctx := u.GetRedisClient() uploadPath, err := utils.GetUploadDirPath() if err != nil { return err diff --git a/worker/internal/utils/asyncq.go b/worker/internal/utils/asyncq.go deleted file mode 100644 index a5b653e..0000000 --- a/worker/internal/utils/asyncq.go +++ /dev/null @@ -1,11 +0,0 @@ -package utils - -import "github.com/hibiken/asynq" - -func RedisURI2AsynqOpt(uri string) asynq.RedisConnOpt { - opt, err := asynq.ParseRedisURI(GetEnv("redis.url")) - if err != nil { - panic(err) - } - return opt -} diff --git a/worker/internal/utils/env.go b/worker/internal/utils/env.go deleted file mode 100644 index 0fba7c2..0000000 --- a/worker/internal/utils/env.go +++ /dev/null @@ -1,53 +0,0 @@ -package utils - -import ( - "strings" - - "github.com/spf13/viper" -) - -var v *viper.Viper - -func init() { - InitEnv() -} - -func InitEnv() { - if v != nil { - return - } - v = viper.New() - v.SetConfigName("config.yaml") - v.SetConfigType("yaml") - v.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) - v.AddConfigPath(".") - v.AddConfigPath("../") - v.AutomaticEnv() - v.WatchConfig() - err := v.ReadInConfig() - if err != nil { - panic(err) - // if _, ok := err.(viper.ConfigFileNotFoundError); !ok { - // // 只有当错误不是"配置文件未找到"时才 panic - // panic(err) - // } - } -} - -func GetEnv(key string) string { - InitEnv() - return v.GetString(key) -} - -func GetEnvWithDefault(key string, defaultValue string) string { - value := v.GetString(key) - if value == "" { - return defaultValue - } - return value -} - -func GetEnvMapString(key string) map[string]string { - InitEnv() - return v.GetStringMapString(key) -} diff --git a/worker/internal/utils/file.go b/worker/internal/utils/file.go index eeb2080..5c4819a 100644 --- a/worker/internal/utils/file.go +++ b/worker/internal/utils/file.go @@ -7,6 +7,7 @@ import ( "io" "os" "path/filepath" + "pkg/utils" ) func GetFileId(fileHash string, fileSize int64) string { @@ -39,7 +40,7 @@ func GetUploadDirPath() (string, error) { return "", err } finalPath := filepath.Join(basepath, "uploads") - uploadPath := GetEnvWithDefault("upload.path", finalPath) + uploadPath := utils.GetEnvWithDefault("upload.path", finalPath) if err := os.MkdirAll(uploadPath, 0755); err != nil { return "", err } diff --git a/worker/internal/utils/redis.go b/worker/internal/utils/redis.go deleted file mode 100644 index 1f8f38c..0000000 --- a/worker/internal/utils/redis.go +++ /dev/null @@ -1,22 +0,0 @@ -package utils - -import ( - "context" - - "github.com/redis/go-redis/v9" -) - -var rdb *redis.Client = InitRedis() -var ctx = context.Background() - -func InitRedis() *redis.Client { - opt, err := redis.ParseURL(GetEnv("redis.url")) - if err != nil { - panic(err) - } - return redis.NewClient(opt) -} - -func GetRedisClient() (*redis.Client, context.Context) { - return rdb, ctx -} diff --git a/worker/main.go b/worker/main.go index 915c541..9c209d6 100644 --- a/worker/main.go +++ b/worker/main.go @@ -2,8 +2,8 @@ package main import ( "log" + "pkg/utils" "worker/internal/tasks" - "worker/internal/utils" "worker/middleware" "github.com/hibiken/asynq" diff --git a/worker/middleware/logger.go b/worker/middleware/logger.go index de3ab51..9819c1f 100644 --- a/worker/middleware/logger.go +++ b/worker/middleware/logger.go @@ -11,14 +11,13 @@ import ( func LoggerMiddleware(h asynq.Handler) asynq.Handler { return asynq.HandlerFunc(func(ctx context.Context, t *asynq.Task) error { start := time.Now() - task_type := zap.String("type", t.Type()) - zap.L().Info("[%q] - 开始处理", task_type) + zap.L().Info("task开始", zap.String("type", t.Type())) err := h.ProcessTask(ctx, t) if err != nil { - zap.L().Error("[%q] - 处理失败 - %v", task_type, zap.Error(err)) + zap.L().Error("task失败", zap.String("type", t.Type()), zap.Error(err)) return err } - zap.L().Info("[%q] - 完成处理 | 耗时 %v", task_type, zap.Duration("duration", time.Since(start))) + zap.L().Info("task完成", zap.String("type", t.Type()), zap.Duration("duration", time.Since(start))) return nil }) }