Skip to content

Commit

Permalink
feat: add service daemon
Browse files Browse the repository at this point in the history
  • Loading branch information
starudream committed Nov 18, 2023
1 parent 27d0308 commit 40a4992
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 25 deletions.
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ Usage:
Available Commands:
cron Run as cron job
run Run douyu job manually
service Manage service
Flags:
-c, --config string path to config file
Expand Down Expand Up @@ -97,9 +98,19 @@ douyu-task run gift send <room id> <gift id> <count>
### Run Cron

```shell
douyu-task
douyu-task cron
```

### Service

```shell
# register as system service
douyu-task service --user --config douyu-task.yaml install
douyu-task service start
douyu-task service status
```

## Docker Compose

```yaml
Expand Down
24 changes: 14 additions & 10 deletions cmd/cron.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,27 @@ var cronCmd = cobra.NewCommand(func(c *cobra.Command) {
c.Use = "cron"
c.Short = "Run as cron job"
c.RunE = func(cmd *cobra.Command, args []string) error {
err1 := cron.AddJob(config.C().Cron.Refresh, "douyu-cron-refresh", cronRefresh)
if err1 != nil {
return fmt.Errorf("add cron job error: %w", err1)
}
err2 := cron.AddJob(config.C().Cron.Renewal, "douyu-cron-renewal", cronRenewal)
if err2 != nil {
return fmt.Errorf("add cron job error: %w", err2)
}
cron.Run()
return nil
return cronRun()
}
})

func init() {
rootCmd.AddCommand(cronCmd)
}

func cronRun() error {
err1 := cron.AddJob(config.C().Cron.Refresh, "douyu-cron-refresh", cronRefresh)
if err1 != nil {
return fmt.Errorf("add cron job error: %w", err1)
}
err2 := cron.AddJob(config.C().Cron.Renewal, "douyu-cron-renewal", cronRenewal)
if err2 != nil {
return fmt.Errorf("add cron job error: %w", err2)
}
cron.Run()
return nil
}

func cronRefresh() {
msg := "斗鱼每日刷新礼物"
err := job.Refresh()
Expand Down
21 changes: 21 additions & 0 deletions cmd/service.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package main

import (
"context"

"github.com/starudream/go-lib/core/v2/config"
"github.com/starudream/go-lib/core/v2/utils/osutil"
"github.com/starudream/go-lib/service/v2"
)

func init() {
args := []string{"cron"}
if c := config.LoadedFile(); c != "" {
args = append(args, "-c", c)
}
service.AddCommand(rootCmd, service.New("douyu-task", serviceCron, service.WithArguments(args...)))
}

func serviceCron(context.Context) {
osutil.ExitErr(cronRun())
}
12 changes: 7 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ module github.com/starudream/douyu-task
go 1.21

require (
github.com/starudream/go-lib/cobra/v2 v2.0.1
github.com/starudream/go-lib/core/v2 v2.0.5
github.com/starudream/go-lib/cron/v2 v2.0.1
github.com/starudream/go-lib/ntfy/v2 v2.0.4
github.com/starudream/go-lib/resty/v2 v2.0.3
github.com/starudream/go-lib/cobra/v2 v2.0.2
github.com/starudream/go-lib/core/v2 v2.0.8
github.com/starudream/go-lib/cron/v2 v2.0.2
github.com/starudream/go-lib/ntfy/v2 v2.0.5
github.com/starudream/go-lib/resty/v2 v2.0.4
github.com/starudream/go-lib/service/v2 v2.0.0
github.com/starudream/go-lib/tablew/v2 v2.0.3
)

Expand All @@ -24,6 +25,7 @@ require (
github.com/goccy/go-json v0.10.2 // indirect
github.com/goccy/go-yaml v1.11.2 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/kardianos/service v1.2.2 // indirect
github.com/knadh/koanf/maps v0.1.1 // indirect
github.com/knadh/koanf/v2 v2.0.1 // indirect
github.com/kr/pretty v0.3.1 // indirect
Expand Down
25 changes: 15 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/
github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/kardianos/service v1.2.2 h1:ZvePhAHfvo0A7Mftk/tEzqEZ7Q4lgnR8sGz4xu1YX60=
github.com/kardianos/service v1.2.2/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM=
github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs=
github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI=
github.com/knadh/koanf/v2 v2.0.1 h1:1dYGITt1I23x8cfx8ZnldtezdyaZtfAuRtIFOiRzK7g=
Expand Down Expand Up @@ -69,16 +71,18 @@ github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/starudream/go-lib/cobra/v2 v2.0.1 h1:9J2oWgqON9/JeLOypv6dD6TXeEelkpvCKG60jHPdg3E=
github.com/starudream/go-lib/cobra/v2 v2.0.1/go.mod h1:v1B/Yo6GA/Oe5g+OW3gTfewXa9JORUEfnPd1RHflUEI=
github.com/starudream/go-lib/core/v2 v2.0.5 h1:7HevB6/y3pN5xHbAuYQbIpTBWL34FRBnfDiLeqCRR4U=
github.com/starudream/go-lib/core/v2 v2.0.5/go.mod h1:jCaVxSBgRwvYNAe9Wf0smZLZwRLNxtHywgrxTb5eTCM=
github.com/starudream/go-lib/cron/v2 v2.0.1 h1:v/OGyRFwNHFoUOsJXI0Pn4lbdztB89agZaGJzxkrvW0=
github.com/starudream/go-lib/cron/v2 v2.0.1/go.mod h1:XysGo8YkrVvg5MGbDOuVgWmiJjt93gCHCDMeT0sn50k=
github.com/starudream/go-lib/ntfy/v2 v2.0.4 h1:Z56rIFg8QT+X+j3xqLliAUqF8d2IKWUXoWcBZ0vUDfM=
github.com/starudream/go-lib/ntfy/v2 v2.0.4/go.mod h1:QmkjPMYHFLzxeh6zjGWn2J+dTFJK0KTCXk+uzKrTBuI=
github.com/starudream/go-lib/resty/v2 v2.0.3 h1:RG3ijLtVe4lf+kp4twfF3DudAq9YG93A4Ore0QW7AtM=
github.com/starudream/go-lib/resty/v2 v2.0.3/go.mod h1:vZsbF8d0syHRmJvAc03x56PysF+YNnAqbzVDp7M5VTI=
github.com/starudream/go-lib/cobra/v2 v2.0.2 h1:mCGDpFNhmNc54IXYJvEVCwJ1wX+CvBo9mccgEoKlh10=
github.com/starudream/go-lib/cobra/v2 v2.0.2/go.mod h1:x0DNeqD6YlkfsP77HKkgsop7GkCTn6Zalvg3SmohPy8=
github.com/starudream/go-lib/core/v2 v2.0.8 h1:qpy+hskvf5mnLBAGNKbrApHv0bryMkU5kzhT+eMtmB8=
github.com/starudream/go-lib/core/v2 v2.0.8/go.mod h1:AKAzYYupFlZH3jE5VZCjYjgfeH1lk5sVNR7GrMFVd6U=
github.com/starudream/go-lib/cron/v2 v2.0.2 h1:FMwmcGUhC4IAHLju8wE1CZuRqyFTCyl1Nli1lHZPtPI=
github.com/starudream/go-lib/cron/v2 v2.0.2/go.mod h1:Phh5DBdVVjPfRTBs7ze1O4yJOxwEmESgVWmF+6HDk3E=
github.com/starudream/go-lib/ntfy/v2 v2.0.5 h1:ANUDeqmGsGnjEZmb73eeiyPsKLW5BDzbWUBvM36ZQr0=
github.com/starudream/go-lib/ntfy/v2 v2.0.5/go.mod h1:so5wrb5qvPiZixUijqlt8bIULif2V0ocNHp+La9C9UU=
github.com/starudream/go-lib/resty/v2 v2.0.4 h1:a4/M9LU6TQv4xBN9L6Ge3KzwOqXHgWVN077PgrRIDes=
github.com/starudream/go-lib/resty/v2 v2.0.4/go.mod h1:aYcVa8W4BUY7qvS94C0gYwATfYf0Z1HXnWy3zNXDea8=
github.com/starudream/go-lib/service/v2 v2.0.0 h1:4HUx1N/alaLRQU7qMoIgQIO2+v4jOBtIvQV9/Yg9TDM=
github.com/starudream/go-lib/service/v2 v2.0.0/go.mod h1:32fHQFCD+ol87td54v2Y2TQbMqFSNSkro70NQ1VHuto=
github.com/starudream/go-lib/tablew/v2 v2.0.3 h1:ACy8ASOVeog1qQb57iUffgSLeF8Ebb/Ju0aymOY4TFA=
github.com/starudream/go-lib/tablew/v2 v2.0.3/go.mod h1:VvFzxm4mx6fxUf+JgVSqED7igWU+afpwm5gMMqsvoFg=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
Expand All @@ -103,6 +107,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand Down

0 comments on commit 40a4992

Please sign in to comment.