/** 添加数据 **/ func Add(readyData *Entity.ReadyData, waitData *Entity.WaitData, key string, value interface{}, expired uint) error { //如果到期时间为0,表示是一个需要立即执行的任务,直接放入readyData列表中 //不为0,放入waitData,等待时间到期 if expired == 0 { readyData.Add(key, value, expired) } else { waitData.Add(key, value, expired) } //存储数据 Store.SetData(readyData, waitData) return nil }
/** 检查进入等待状态的任务是否到期,到期后放入readyData **/ func CheckWaitTask(readyData *Entity.ReadyData, waitData *Entity.WaitData) { c := time.Tick(time.Second) dataChange := false for _ = range c { for key, value := range *waitData { //已经到期的任务,放入readyData if value.Expired <= uint(time.Now().Unix()) { Utils.LogInfo("check do=%s\n", key) readyData.Add(key, value.Value, value.Expired) waitData.Del(key) dataChange = true } } if dataChange { //存储数据 Store.SetData(readyData, waitData) dataChange = false } } }