Pārlūkot izejas kodu

docs: nunu replace gocron

chris 2 gadi atpakaļ
vecāks
revīzija
8eeea3ac46
7 mainītis faili ar 25 papildinājumiem un 22 dzēšanām
  1. 1 1
      README.md
  2. 1 1
      README_zh.md
  3. 0 1
      cmd/job/wire/wire.go
  4. 1 3
      cmd/job/wire/wire_gen.go
  5. 2 1
      go.mod
  6. 7 3
      go.sum
  7. 13 12
      internal/job/job.go

+ 1 - 1
README.md

@@ -24,7 +24,7 @@ Nunu is an application scaffold based on Golang, named after a game character in
 - **Go-redis**: https://github.com/go-redis/redis
 - **Testify**: https://github.com/stretchr/testify
 - **Sonyflake**: https://github.com/sony/sonyflake
-- **robfig-cron**: https://github.com/robfig/cron
+- **gocron**:  https://github.com/go-co-op/gocron
 - More...
 
 ## Features

+ 1 - 1
README_zh.md

@@ -18,7 +18,7 @@ Nunu是一个基于Golang的应用脚手架,它的名字来自于英雄联盟
 - **Go-redis**: https://github.com/go-redis/redis
 - **Testify**: https://github.com/stretchr/testify
 - **Sonyflake**: https://github.com/sony/sonyflake
-- **robfig-cron**: https://github.com/robfig/cron
+- **gocron**:  https://github.com/go-co-op/gocron
 - More...
 ## 特性
 * **超低学习成本和定制**:Nunu封装了Gopher最熟悉的一些流行库。您可以轻松定制应用程序以满足特定需求。

+ 0 - 1
cmd/job/wire/wire.go

@@ -14,7 +14,6 @@ import (
 // wire.go 初始化模块
 func NewApp(*viper.Viper, *log.Logger) (*job.Job, func(), error) {
 	panic(wire.Build(
-		provider.DaoSet,
 		provider.JobSet,
 	))
 }

+ 1 - 3
cmd/job/wire/wire_gen.go

@@ -7,7 +7,6 @@
 package wire
 
 import (
-	"github.com/go-nunu/nunu-layout-advanced/internal/dao"
 	"github.com/go-nunu/nunu-layout-advanced/internal/job"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/log"
 	"github.com/spf13/viper"
@@ -17,8 +16,7 @@ import (
 
 // wire.go 初始化模块
 func NewApp(viperViper *viper.Viper, logger *log.Logger) (*job.Job, func(), error) {
-	db := dao.NewDB(viperViper)
-	jobJob := job.NewJob(db, logger)
+	jobJob := job.NewJob(logger)
 	return jobJob, func() {
 	}, nil
 }

+ 2 - 1
go.mod

@@ -4,15 +4,16 @@ go 1.16
 
 require (
 	github.com/gin-gonic/gin v1.9.1
+	github.com/go-co-op/gocron v1.28.2
 	github.com/golang-jwt/jwt/v5 v5.0.0
 	github.com/google/wire v0.5.0
 	github.com/pkg/errors v0.9.1
 	github.com/redis/go-redis/v9 v9.0.5
-	github.com/robfig/cron v1.2.0
 	github.com/satori/go.uuid v1.2.0
 	github.com/sony/sonyflake v1.1.0
 	github.com/spf13/viper v1.16.0
 	github.com/stretchr/testify v1.8.4
+	go.uber.org/atomic v1.11.0 // indirect
 	go.uber.org/zap v1.24.0
 	golang.org/x/crypto v0.9.0
 	gopkg.in/natefinch/lumberjack.v2 v2.2.1

+ 7 - 3
go.sum

@@ -704,6 +704,8 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE
 github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
 github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
 github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
+github.com/go-co-op/gocron v1.28.2 h1:H9oHUGH+9HZ5mAorbnzRjzXLf4poP+ctZdbtaKRYagc=
+github.com/go-co-op/gocron v1.28.2/go.mod h1:39f6KNSGVOU1LO/ZOoZfcSxwlsJDQOKSu8erN0SH48Y=
 github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
 github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
 github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
@@ -1006,11 +1008,12 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
 github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o=
 github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk=
 github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
-github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
-github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
+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/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o=
 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/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
@@ -1092,8 +1095,9 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe
 go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
 go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
 go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
 go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
+go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
 go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
 go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
 go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=

+ 13 - 12
internal/job/job.go

@@ -2,33 +2,34 @@ package job
 
 import (
 	"fmt"
+	"github.com/go-co-op/gocron"
 	"github.com/go-nunu/nunu-layout-advanced/pkg/log"
-	"github.com/robfig/cron"
-	"gorm.io/gorm"
+	"time"
 )
 
 type Job struct {
-	db  *gorm.DB
 	log *log.Logger
 }
 
-func NewJob(db *gorm.DB, log *log.Logger) *Job {
+func NewJob(log *log.Logger) *Job {
 	return &Job{
-		db:  db,
 		log: log,
 	}
 }
 func (j *Job) Run() {
-	c := cron.New()
-	var err error
-	err = c.AddFunc("0/3 * * * * *", func() {
-		j.log.Info("I'm a Task.")
+	s := gocron.NewScheduler(time.UTC)
+	_, err := s.CronWithSeconds("0/3 * * * * *").Do(func() {
+		j.log.Info("I'm a Task1.")
+	})
+	if err != nil {
+		fmt.Println(err)
+	}
+	_, err = s.Every("3s").Do(func() {
+		j.log.Info("I'm a Task2.")
 	})
-
 	if err != nil {
 		fmt.Println(err)
 	}
 
-	c.Start()
-	select {}
+	s.StartBlocking()
 }