mirror of
https://github.com/keven1024/015.git
synced 2026-05-26 07:08:02 +00:00
67 lines
1.8 KiB
Go
67 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"pkg/geoip"
|
|
"pkg/i18n"
|
|
"pkg/utils"
|
|
"worker/internal/tasks"
|
|
"worker/middleware"
|
|
|
|
"github.com/hibiken/asynq"
|
|
"github.com/spf13/cast"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func main() {
|
|
// 日志
|
|
var logger *zap.Logger
|
|
if utils.GetEnvWithDefault("NODE_ENV", "production") == "production" {
|
|
logger, _ = zap.NewProduction()
|
|
} else {
|
|
logger, _ = zap.NewDevelopment()
|
|
}
|
|
defer logger.Sync() //nolint:errcheck
|
|
zap.ReplaceGlobals(logger)
|
|
// redis
|
|
if err := utils.InitRedis(); err != nil {
|
|
logger.Fatal("redis init failed", zap.Error(err))
|
|
panic(err)
|
|
}
|
|
|
|
if err := i18n.Init(); err != nil {
|
|
log.Fatalf("failed to init i18n: %v", err)
|
|
}
|
|
if err := geoip.Init(); err != nil {
|
|
log.Fatalf("failed to init geoip: %v", err)
|
|
}
|
|
|
|
srv := asynq.NewServer(
|
|
utils.RedisURI2AsynqOpt(utils.GetEnv("redis.url")),
|
|
asynq.Config{Concurrency: cast.ToInt(utils.GetEnvWithDefault("worker.concurrency", "4"))},
|
|
)
|
|
|
|
mux := asynq.NewServeMux()
|
|
mux.Use(middleware.LoggerMiddleware)
|
|
mux.HandleFunc("share:remove", tasks.RemoveShare)
|
|
mux.HandleFunc("share:notify", tasks.ShareNotify)
|
|
mux.HandleFunc("file:remove", tasks.RemoveFile)
|
|
mux.HandleFunc("file:janitor", tasks.FileJanitor)
|
|
mux.HandleFunc("image:compress", tasks.CompressImage)
|
|
mux.HandleFunc("image:convert", tasks.ConvertImage)
|
|
mux.HandleFunc("text:translate", tasks.TranslateText)
|
|
|
|
scheduler := asynq.NewScheduler(utils.RedisURI2AsynqOpt(utils.GetEnv("redis.url")), nil)
|
|
if _, err := scheduler.Register("0 3 * * *", asynq.NewTask("file:janitor", nil)); err != nil {
|
|
log.Fatalf("could not register scheduler: %v", err)
|
|
}
|
|
if err := scheduler.Start(); err != nil {
|
|
log.Fatalf("could not start scheduler: %v", err)
|
|
}
|
|
defer scheduler.Shutdown()
|
|
|
|
if err := srv.Run(mux); err != nil {
|
|
log.Fatalf("could not run server: %v", err)
|
|
}
|
|
}
|