gopkg/middleware/etcd/define.go

69 lines
2.6 KiB
Go

// Package etcd...
//
// Description : etcd...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2021-11-23 11:25 上午
package etcd
import (
"math"
"time"
"go.etcd.io/etcd/clientv3"
)
// 初始化client各种默认配置
const (
// DefaultDialTimeout 默认超时时间
DefaultDialTimeout = 5 * time.Second
// DefaultDialKeepAliveTime 默认ping时间
DefaultDialKeepAliveTime = 3 * time.Second
// DefaultDialKeepAliveTimeout ping之后等待响应的超时时间, 超时未响应, 连接将会断开
DefaultDialKeepAliveTimeout = 5 * time.Second
// DefaultMaxCallSendMsgSize 客户端请求体最大字节数, 默认 2M , 和etcd默认值保持一致
DefaultMaxCallSendMsgSize = 2 * 1024 * 1024
// DefaultMaxCallRecvMsgSize 客户端接受的响应题最大大小, 默认int32最大值, 和etcd默认值保持一致
DefaultMaxCallRecvMsgSize = math.MaxInt32
)
// 操作过程中各种默认配置
const (
// DefaultPutTimeout put 默认超时时间
DefaultPutTimeout = time.Second
// DefaultGetTimeout get 默认超时时间
DefaultGetTimeout = time.Second
// DefaultDeleteTimeout 删除的超时时间
DefaultDeleteTimeout = time.Second
)
// WatcherHandler 监听key变化的处理函数
type WatcherHandler func(event *clientv3.Event)
// CancelWatcherHandler 取消监听后的处理函数
type CancelWatcherHandler func(key string, data interface{})
// TimeoutWatcherHandler 超时之后的回调函数
type TimeoutWatcherHandler func(key string, timeout time.Duration)
// LeaseKeepALiveHandler 续期成功的处理
type LeaseKeepALiveHandler func(data *LeaseKeepAliveData)
// LeaseKeepAliveData 自动续期的数据结构
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 8:28 下午 2021/11/23
type LeaseKeepAliveData struct {
Key string `json:"key"` // 续期key
StartTime int64 `json:"start_time"` // 开始续期时间
LastLeaseTime int64 `json:"last_lease_time"` // 上一次续期事件时间
LeaseCnt int64 `json:"lease_cnt"` // 续期次数
HasFinish bool `json:"has_finish"` // 是否完成
LeaseFinishType string `json:"lease_finish_type"` // 续期完成类型
LeaseFinishTime int64 `json:"lease_finish_time"` // 续期完成时间
LeaseDetail *clientv3.LeaseKeepAliveResponse `json:"lease_detail"` // 续约数据
Data map[string]interface{} `json:"data"` // 携带的数据
}