Browse Source

新增定时检测任务

tuoling805 1 year ago
parent
commit
63860cd421
7 changed files with 41 additions and 45 deletions
  1. 3 2
      main.go
  2. 4 1
      models/db.go
  3. 1 1
      models/sms_config.go
  4. 2 2
      models/sms_record.go
  5. 19 6
      services/sms_send.go
  6. 9 29
      services/task.go
  7. 3 4
      utils/constants.go

+ 3 - 2
main.go

@@ -3,6 +3,7 @@ package main
 import (
 	"fmt"
 	_ "hongze/hongze_robot/routers"
+	"hongze/hongze_robot/services"
 	"hongze/hongze_robot/utils"
 	"runtime"
 	"time"
@@ -17,11 +18,11 @@ func main() {
 		web.BConfig.WebConfig.DirectoryIndex = true
 		web.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
 	}
+	go services.Task()
 	web.BConfig.RecoverFunc = Recover
 	web.Run()
 }
 
-
 func Recover(ctx *context.Context, conf *web.Config) {
 	if err := recover(); err != nil {
 		if err == web.ErrAbort {
@@ -51,4 +52,4 @@ func Recover(ctx *context.Context, conf *web.Config) {
 		go utils.SendEmail(utils.APPNAME+"崩了"+time.Now().Format("2006-01-02 15:04:05"), stack, utils.EmailSendToUsers)
 	}
 	return
-}
+}

+ 4 - 1
models/db.go

@@ -1,9 +1,10 @@
 package models
 
 import (
+	"github.com/beego/beego/v2/client/orm"
 	_ "github.com/go-sql-driver/mysql"
 	"hongze/hongze_robot/utils"
-	"github.com/rdlucklib/rdluck_tools/orm"
+	"time"
 )
 
 func init() {
@@ -11,6 +12,8 @@ func init() {
 	_ = orm.RegisterDataBase("default", "mysql", utils.MYSQL_URL)
 	orm.SetMaxIdleConns("default", 50)
 	orm.SetMaxOpenConns("default", 100)
+	db, _ := orm.GetDB("default")
+	db.SetConnMaxLifetime(10 * time.Minute)
 
 	//注册对象
 	orm.RegisterModel(

+ 1 - 1
models/sms_config.go

@@ -2,8 +2,8 @@ package models
 
 import (
 	"encoding/json"
+	"github.com/beego/beego/v2/client/orm"
 	"hongze/hongze_robot/utils"
-	"github.com/rdlucklib/rdluck_tools/orm"
 	"time"
 )
 

+ 2 - 2
models/sms_record.go

@@ -1,7 +1,7 @@
 package models
 
 import (
-	"github.com/rdlucklib/rdluck_tools/orm"
+	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
@@ -49,7 +49,7 @@ func ModifySmsRecordIsSend(mobile, smsDate string) (err error) {
 
 func GetSmsRecord() (items []*SmsRecord, err error) {
 	o := orm.NewOrm()
-	sql := ` SELECT * FROM  sms_record  WHERE is_send=0 ORDER BY sms_date_time ASC `
+	sql := ` SELECT * FROM  sms_record  WHERE is_send=0 AND body<>'测试' ORDER BY sms_date_time ASC `
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }

+ 19 - 6
services/sms_send.go

@@ -1,8 +1,11 @@
 package services
 
 import (
+	"context"
 	"errors"
 	"fmt"
+	"strconv"
+
 	"github.com/blinkbean/dingtalk"
 	"hongze/hongze_robot/cache"
 	"hongze/hongze_robot/models"
@@ -12,7 +15,7 @@ import (
 )
 
 func SendSms() {
-	time.Sleep(time.Second)
+	time.Sleep(1 * time.Second)
 	var err error
 	defer func() {
 		if err != nil {
@@ -84,8 +87,18 @@ func AddUnionCode() {
 	}
 }
 
-//func init() {
-//	fmt.Println("start 111")
-//	AddUnionCode()
-//	fmt.Println("end 111")
-//}
+func CheckSmsSend(cont context.Context) (err error) {
+	//未推送短信记录
+	list, err := models.GetSmsRecord()
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		utils.FileLog.Info("GetSmsRecord Err:" + err.Error())
+		return err
+	}
+	listLen := len(list)
+	msgBody := "聚酯短信有: " + strconv.Itoa(listLen) + " 条未推送"
+	go SendAlarmMsgByDingTalkRelease(utils.APPNAME, utils.RunMode, msgBody, 3)
+
+	//发送短信
+	SendSms()
+	return err
+}

+ 9 - 29
services/task.go

@@ -1,37 +1,17 @@
 package services
 
 import (
-	"bytes"
 	"fmt"
-	"os/exec"
-	"regexp"
-	"strconv"
-	"strings"
+	"github.com/beego/beego/v2/task"
 )
 
 func Task() {
-	fmt.Println("start")
-	//fmt.Println(portInUse(7000))
-	//RunPycharm()
-	fmt.Println("end")
-}
+	fmt.Println("task start")
+	//检测未推送短信信息
+	checkSmsSend := task.NewTask("checkSmsSend", "0 0 */1 * * *", CheckSmsSend)
+	task.AddTask("checkSmsSend", checkSmsSend)
+
+	task.StartTask()
 
-func portInUse(portNumber int) int {
-	res := -1
-	var outBytes bytes.Buffer
-	cmdStr := fmt.Sprintf("netstat -ano -p tcp | findstr %d", portNumber)
-	cmd := exec.Command("cmd", "/c", cmdStr)
-	cmd.Stdout = &outBytes
-	cmd.Run()
-	resStr := outBytes.String()
-	r := regexp.MustCompile(`\s\d+\s`).FindAllString(resStr, -1)
-	if len(r) > 0 {
-		pid, err := strconv.Atoi(strings.TrimSpace(r[0]))
-		if err != nil {
-			res = -1
-		} else {
-			res = pid
-		}
-	}
-	return res
-}
+	fmt.Println("task end")
+}

+ 3 - 4
utils/constants.go

@@ -4,7 +4,7 @@ const (
 	Md5Key = "Ks@h64WJ#tcVgG8$&WlNfqvLAtMgpxWN"
 )
 
-//常量定义
+// 常量定义
 const (
 	FormatTime            = "15:04:05"                //时间格式
 	FormatDate            = "2006-01-02"              //日期格式
@@ -19,12 +19,11 @@ const (
 )
 
 const (
-	APPNAME          = "弘则-机器人"
+	APPNAME          = "弘则-短信机器人"
 	EmailSendToUsers = "glji@hzinsights.com;pyan@hzinsights.com"
-	Sign="c86I1wV3AZ0M"
+	Sign             = "c86I1wV3AZ0M"
 )
 
-
 const (
 	CACHE_HZ_SMS_CONFIG = "CACHE_HZ_SMS_CONFIG_"
 )