go延时执行,加锁

// 暂停 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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大得369

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值