// 暂停 10 秒
time.Sleep(10 * time.Second)
定时任务加锁
package task
import (
"fmt"
"github.com/robfig/cron/v3"
"log"
"time"
"wbGo/configs"
"wbGo/model"
"wbGo/task/cost"
)
// 锁
var state int8
/**
* 处理成本
*/
func StartsTask() {
//启动初始化,开锁
state = 1
// 设置时区
local, _ := time.LoadLocation("Asia/Shanghai")
interval := cron.New(cron.WithLocation(local), cron.WithSeconds()) // 设置时区并且精度按秒。
timeout := "*/2 * * * * *" // 5秒执行一次
intervalId, err := interval.AddFunc(timeout, func() {
//锁没开,结束
if state == 2 {
fmt.Println("关闭中...")
return
}
//关闭锁
state = 2
// 暂停 10 秒
time.Sleep(10 * time.Second)
//当前时间
tStr := time.Now().Format("2006-01-02 15:04:05")
fmt.Println("当前执行时间:" + tStr)
//开锁
state = 1
})
if err != nil {
//log.Println("定时任务报错", "\n error=", err, "\n num=", num)
return
}
log.Println("定时任务已开启,Id=", intervalId)
interval.Start()
}
/**
* 仓库初始化处理,记录第一次的时候留一次备份(删除是最顶一条的时候需要),不存在仓库的时候,初始化一条0
*/
func Onhand(it model.WbBillflow) bool {
return true
}