Skip to content

ShaorxCN/gcrontab

Repository files navigation

定时任务

go 1.22

整体逻辑 按照配置的db扫描间隔时间获取所有这个间隔时间内需要执行的任务todo[比如当前时间 10:00 db扫描间隔2h 那么会获取所有当天12:00之前需要执行的任务]

(高频扫更简单 或者改为内存以及db同步 单纯写)

然后根据mem扫描间隔时间扫描获取的任务队列,发现需要执行的则go执行,执行结束后根据计算出的下次执行时间分为两种情况:

  1. 下次执行时间超过12:00 这个任务从todo中删除
  2. 如果发现下次执行时间还是在这个周期内,将todo中的内容更新为处理后的(依旧会落库)

其他功能影响则通过二次检查的方式消除(通过id再次查询)

极端巧合例如二次检查通过的瞬间有进行修改 删除 或者立即执行操作此处无视(可以实现检查 但是设计可以接受)

model部分直接定义数据库模型以及操作数据库 service 则是处理业务需要以及聚合rep 复杂情况下传递具有事务的db rep是service和model的过渡。负责具体数据库操作

About

定时任务

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages