2024-05-01 20:03:20 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2024-05-02 14:58:41 +08:00
|
|
|
|
"flag"
|
2024-05-02 12:38:42 +08:00
|
|
|
|
"fmt"
|
2024-05-01 20:03:20 +08:00
|
|
|
|
"log"
|
|
|
|
|
"time"
|
|
|
|
|
"week/moonshot"
|
|
|
|
|
"week/qywechat"
|
2024-05-02 12:38:42 +08:00
|
|
|
|
"week/tools"
|
2024-05-01 20:03:20 +08:00
|
|
|
|
|
|
|
|
|
"github.com/jasonlvhit/gocron"
|
|
|
|
|
)
|
|
|
|
|
|
2024-05-02 12:38:42 +08:00
|
|
|
|
var maxRetries = 0
|
|
|
|
|
var now = time.Now()
|
2024-05-02 14:58:41 +08:00
|
|
|
|
var liveMode bool
|
2024-05-01 20:03:20 +08:00
|
|
|
|
|
|
|
|
|
func main() {
|
2024-05-02 13:16:38 +08:00
|
|
|
|
log.Println(`
|
2024-05-02 12:38:42 +08:00
|
|
|
|
_____
|
|
|
|
|
_/ ____\______ ____ _____ _____ ____ __ _ _______ ____ ____
|
|
|
|
|
\ __\\_ __ \/ _ \ / \ \__ \ / _ \ \ \/ \/ /\__ \ / \ / ___\
|
|
|
|
|
| | | | \( <_> ) Y Y \ / __ \( <_> ) \ / / __ \| | \/ /_/ >
|
|
|
|
|
|__| |__| \____/|__|_| / (____ /\____/ \/\_/ (____ /___| /\___ /
|
2024-05-02 13:16:38 +08:00
|
|
|
|
\/ \/ \/ \//_____/ `)
|
2024-05-02 12:38:42 +08:00
|
|
|
|
fmt.Println("-----------------------------------------------------------------------------------------")
|
|
|
|
|
fmt.Println("-----------------------------------------------------------------------------------------")
|
2024-05-02 14:58:41 +08:00
|
|
|
|
flag.BoolVar(&liveMode, "liveMode", false, "即时模式关闭")
|
|
|
|
|
flag.Parse()
|
|
|
|
|
if !liveMode {
|
|
|
|
|
fmt.Println("目前时定时任务模式")
|
|
|
|
|
if maxRetries < 3 {
|
|
|
|
|
for {
|
|
|
|
|
remainingTime := tools.RemainingTimeUntilNextFriday17()
|
|
|
|
|
if remainingTime <= 0 {
|
|
|
|
|
break // 当剩余时间小于等于0时跳出循环
|
|
|
|
|
}
|
|
|
|
|
fmt.Printf("距离执行定时任务还剩 %d小时 %d分钟 %d秒\n", int(remainingTime.Hours()), int(remainingTime.Minutes())%60, int(remainingTime.Seconds())%60)
|
|
|
|
|
time.Sleep(time.Minute * 10) // 等待10分钟,然后更新
|
2024-05-02 12:38:42 +08:00
|
|
|
|
}
|
2024-05-02 14:58:41 +08:00
|
|
|
|
// 定义任务,每周五的五点执行
|
|
|
|
|
gocron.Every(1).Friday().At("17:00").Do(job)
|
|
|
|
|
// 开始定时任务
|
|
|
|
|
<-gocron.Start()
|
2024-05-01 20:03:20 +08:00
|
|
|
|
|
2024-05-02 14:58:41 +08:00
|
|
|
|
} else {
|
|
|
|
|
log.Fatalln("最大重试次数已到达3,退出")
|
|
|
|
|
}
|
2024-05-01 20:03:20 +08:00
|
|
|
|
} else {
|
2024-05-02 14:58:41 +08:00
|
|
|
|
fmt.Println("目前时即时任务模式")
|
|
|
|
|
job()
|
2024-05-01 20:03:20 +08:00
|
|
|
|
}
|
2024-05-02 14:58:41 +08:00
|
|
|
|
|
2024-05-01 20:03:20 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func job() {
|
2024-05-02 12:38:42 +08:00
|
|
|
|
nowDate := now.Format("2006-01-02 15:04:05") + " " + now.Weekday().String()
|
|
|
|
|
log.Printf("开始执行任务,当前时间是:%v", nowDate)
|
|
|
|
|
|
2024-05-01 20:03:20 +08:00
|
|
|
|
err := moonshot.CreateExcel()
|
|
|
|
|
if err != nil {
|
2024-05-02 12:38:42 +08:00
|
|
|
|
maxRetries++
|
|
|
|
|
log.Printf("执行失败,开始第%v次重试...", maxRetries)
|
|
|
|
|
log.Println("----------------------------------------------------------------------")
|
2024-05-01 20:03:20 +08:00
|
|
|
|
job()
|
2024-05-02 12:38:42 +08:00
|
|
|
|
|
2024-05-01 20:03:20 +08:00
|
|
|
|
}
|
|
|
|
|
repContent, err := moonshot.AiChat()
|
|
|
|
|
if err != nil {
|
2024-05-02 12:38:42 +08:00
|
|
|
|
maxRetries++
|
|
|
|
|
log.Printf("执行失败,开始第%v次重试...", maxRetries)
|
|
|
|
|
log.Println("----------------------------------------------------------------------")
|
2024-05-01 20:03:20 +08:00
|
|
|
|
job()
|
|
|
|
|
}
|
|
|
|
|
qywechat.Send(repContent)
|
|
|
|
|
|
|
|
|
|
}
|