|
@@ -23,10 +23,11 @@ type config struct {
|
|
|
UserName string
|
|
|
Password string
|
|
|
}
|
|
|
- CmdText string
|
|
|
- TimeTask string
|
|
|
- Node string
|
|
|
- MailWarn string
|
|
|
+ CmdText string
|
|
|
+ NoMsgCmdText string
|
|
|
+ TimeTask string
|
|
|
+ Node string
|
|
|
+ MailWarn string
|
|
|
}
|
|
|
|
|
|
var Config *config
|
|
@@ -42,31 +43,60 @@ func main() {
|
|
|
Password: Config.Mongodb.Password,
|
|
|
}
|
|
|
Mgo.InitPool()
|
|
|
- model := flag.Int("m", 0, "模式")
|
|
|
+ t := flag.Int("t", 0, "任务类型;1:全部 2:免费用户无消息")
|
|
|
+ m := flag.Int("m", 0, "模式")
|
|
|
+ y := flag.String("y", "", "年月日,例如:20250220")
|
|
|
flag.Parse()
|
|
|
- if *model == 1 {
|
|
|
- run()
|
|
|
+ if *m == 1 {
|
|
|
+ run(*t, *y)
|
|
|
} else {
|
|
|
- SimpleCrontab(false, Config.TimeTask, run)
|
|
|
+ SimpleCrontab(false, Config.TimeTask, func() {
|
|
|
+ run(*t, *y)
|
|
|
+ })
|
|
|
select {}
|
|
|
}
|
|
|
}
|
|
|
-func run() {
|
|
|
- now := time.Now().AddDate(0, 0, -1)
|
|
|
+func run(t int, y string) {
|
|
|
+ var now time.Time
|
|
|
+ if y != "" {
|
|
|
+ var err error
|
|
|
+ now, err = time.ParseInLocation(Date_yyyyMMdd, y, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ log.Fatalln(err)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ now = time.Now().AddDate(0, 0, -1)
|
|
|
+ }
|
|
|
+ var cmdText string
|
|
|
ymd := FormatDate(&now, Date_Short_Layout)
|
|
|
- count := getCmdResult(fmt.Sprintf(Config.CmdText, ymd))
|
|
|
+ if t == 1 {
|
|
|
+ cmdText = fmt.Sprintf(Config.CmdText, ymd)
|
|
|
+ } else if t == 2 {
|
|
|
+ cmdText = fmt.Sprintf(Config.NoMsgCmdText, FormatDate(&now, Date_yyyyMMdd))
|
|
|
+ } else {
|
|
|
+ log.Fatalln("无效的-t参数")
|
|
|
+ }
|
|
|
+ count := getCmdResult(cmdText)
|
|
|
log.Println(Config.Node, "模板消息推送量", count)
|
|
|
if count == 0 {
|
|
|
go http.Get(Config.MailWarn)
|
|
|
}
|
|
|
+ var tp string
|
|
|
+ if t == 1 {
|
|
|
+ tp = "all"
|
|
|
+ } else if t == 2 {
|
|
|
+ tp = "free_nomsg"
|
|
|
+ }
|
|
|
Mgo.Update("wxtmplsend_tj", map[string]interface{}{
|
|
|
- "ymd": ymd,
|
|
|
- "node_type": Config.Node,
|
|
|
+ "ymd": ymd,
|
|
|
+ "type": tp,
|
|
|
+ "node": Config.Node,
|
|
|
}, map[string]interface{}{
|
|
|
"$set": map[string]interface{}{
|
|
|
- "count": count,
|
|
|
- "node_type": Config.Node,
|
|
|
- "ymd": ymd,
|
|
|
+ "count": count,
|
|
|
+ "node": Config.Node,
|
|
|
+ "ymd": ymd,
|
|
|
+ "type": tp,
|
|
|
},
|
|
|
}, true, false)
|
|
|
}
|