3 Star 2 Fork 1

fotomxq/weeekj_core

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
core.go 1.69 KB
一键复制 编辑 原始数据 按行查看 历史
fotomxq 提交于 2025-02-05 18:52 +08:00 . 修改项目路径;
package OrgTime
import (
BaseSystemMission "gitee.com/fotomxq/weeekj_core/v5/base/system_mission"
Router2SystemConfig "gitee.com/fotomxq/weeekj_core/v5/router2/system_config"
"sync"
"time"
)
var (
//是否需要重新拉取数据?
runUpdateCacheLock sync.Mutex
needUpdateConfigMemData = false
allConfigList []FieldsWorkTime
//调度任务
runUpdateSysM = BaseSystemMission.Mission{
OrgID: 0,
Name: "组织考勤更新服务",
Mark: "org_time.run.update",
NextTime: "每1秒",
Bind: BaseSystemMission.MissionBind{
NatsCode: "org_time_run_update",
NatsMsg: "/org/time/run_update",
},
}
//OpenSub 是否启动订阅
OpenSub = false
)
func Init() {
if OpenSub {
subNats()
BaseSystemMission.ReginWait(&runUpdateSysM, time.Time{})
}
}
// 将数据加载到内存
func loadAllConfigToMem() {
//锁定机制
runUpdateCacheLock.Lock()
defer runUpdateCacheLock.Unlock()
//遍历数据
if needUpdateConfigMemData || len(allConfigList) < 1 {
//将数据集合写入0
allConfigList = []FieldsWorkTime{}
//遍历数据
limit := 1000
step := 0
for {
var rawList []FieldsWorkTime
if err := Router2SystemConfig.MainDB.Select(&rawList, "SELECT id FROM org_work_time WHERE expire_at >= NOW() OR expire_at < to_timestamp(1000000) ORDER BY id DESC LIMIT $1 OFFSET $2", limit, step); err != nil {
break
}
if len(rawList) < 1 {
if step < 1 {
time.Sleep(time.Second * 10)
}
break
}
for _, v := range rawList {
vData := getConfigByID(v.ID)
if vData.ID < 1 {
continue
}
allConfigList = append(allConfigList, v)
}
step += limit
}
}
if len(allConfigList) > 0 {
needUpdateConfigMemData = false
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/fotomxq/weeekj_core.git
git@gitee.com:fotomxq/weeekj_core.git
fotomxq
weeekj_core
weeekj_core
v5.4.31

搜索帮助