Selaa lähdekoodia

something 支持定时任务

Signed-off-by: allan716 <[email protected]>
allan716 3 vuotta sitten
vanhempi
sitoutus
e7eae510f3

+ 1 - 0
cmd/GetCAPTCHA/backend/config/config.go

@@ -7,6 +7,7 @@ import (
 )
 
 type Config struct {
+	EveryTime              string
 	SSHKeyFullPath         string
 	SSHKeyPwd              string
 	CloneProjectDesSaveDir string

+ 2 - 1
cmd/GetCAPTCHA/backend/git_helper.go

@@ -16,8 +16,9 @@ import (
 
 func GitProcess(config config.Config, enString string) error {
 
+	fmt.Println("Now Time", time.Now().Format("2006-01-02 15:04:05"))
 	nowTime := time.Now().Format("2006-01-02")
-	fmt.Println("Now Time", nowTime)
+
 	// 实例化登录密钥
 	publicKeys, err := ssh.NewPublicKeysFromFile("git", config.SSHKeyFullPath, config.SSHKeyPwd)
 	if err != nil {

+ 23 - 2
cmd/GetCAPTCHA/main.go

@@ -4,15 +4,36 @@ import (
 	"fmt"
 	"github.com/allanpk716/ChineseSubFinder/cmd/GetCAPTCHA/backend"
 	"github.com/allanpk716/ChineseSubFinder/cmd/GetCAPTCHA/backend/config"
+	"github.com/robfig/cron/v3"
 )
 
 func main() {
 
-	err := Process()
+	// 任务还没执行完,下一次执行时间到来,下一次执行就跳过不执行
+	c := cron.New(cron.WithChain(cron.SkipIfStillRunning(cron.DefaultLogger)))
+	// 定时器
+	entryID, err := c.AddFunc("@every "+config.GetConfig().EveryTime, func() {
+
+		err := Process()
+		if err != nil {
+			fmt.Println(err.Error())
+			return
+		}
+	})
 	if err != nil {
-		println(err.Error())
+		fmt.Println("cron entryID:", entryID, "Error:", err)
 		return
 	}
+	// 先执行一次
+	err = Process()
+	if err != nil {
+		fmt.Println(err.Error())
+		return
+	}
+
+	c.Start()
+	// 阻塞
+	select {}
 }
 
 func Process() error {