go-dev-frame/sponge

sponge 里的cron 怎么解决重复执行的问题呢

Closed this issue · 3 comments

比如1秒查询一次

每次查询1万条,那这1万条还没处理完 我看又会被调用,请问sponge框架支持什么配置可以解决这个问题吗

我目前用的
var mutex sync.Mutex

mutex.Lock()
defer mutex.Unlock()

  • 如果是单机运行使用sync.Mutex可以解决,执行任务前尝试获取锁,获取锁失败直接退出当前任务。
  • 如果集群部署服务,使用sync.Mutex是无法解决的,需要用到分布式锁,常见的分布式锁有基于 redis、etcd、数据库等实现。

谢谢了 好的 我去处理