Documentation
¶
Index ¶
- func CloseQuietly(c io.Closer)
- func FormatMillis(ms int64) string
- func GetOrDefault[T comparable](v, def T) T
- func NewRedis(rootCtx context.Context, mLogger log.Logger, dsn string) (*redis.Client, func(), error)
- func NewRedisCluster(rootCtx context.Context, mLogger log.Logger, seeds []string, passwd string, ...) (*redis.ClusterClient, func(), error)
- type RedisLeader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CloseQuietly ¶
func FormatMillis ¶
func GetOrDefault ¶
func GetOrDefault[T comparable](v, def T) T
Types ¶
type RedisLeader ¶
type RedisLeader struct {
// contains filtered or unexported fields
}
RedisLeader 通过 Redis 实现单点执行的领导者选举: - 以 SET NX PX 获取锁(TTL=ttl) - 周期性校验并续期(仅当 value 匹配本实例 id 时) - 丢失领导权后自动退出工作回调并重试抢占 - Stop 时安全释放(compare-and-del) 兼容:*redis.Client / *redis.ClusterClient(通过 redis.Cmdable)
func NewRedisClusterLeader ¶
func NewRedisClusterLeader( rdb *redis.ClusterClient, key string, ttl, renewEvery time.Duration, logger log.Logger, onStarted func(context.Context), onStopped func(context.Context), ) *RedisLeader
NewRedisClusterLeader:集群版构造器
func NewRedisLeader ¶
func NewRedisLeader( rdb *redis.Client, key string, ttl, renewEvery time.Duration, logger log.Logger, onStarted func(context.Context), onStopped func(context.Context), ) *RedisLeader
NewRedisLeader:单机版构造器
Click to show internal directories.
Click to hide internal directories.