feature/etcd #6
@ -34,6 +34,8 @@ const (
|
|||||||
DefaultPutTimeout = time.Second
|
DefaultPutTimeout = time.Second
|
||||||
// DefaultGetTimeout get 默认超时时间
|
// DefaultGetTimeout get 默认超时时间
|
||||||
DefaultGetTimeout = time.Second
|
DefaultGetTimeout = time.Second
|
||||||
|
// DefaultDeleteTimeout 删除的超时时间
|
||||||
|
DefaultDeleteTimeout = time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
// WatcherHandler 监听key变化的处理函数
|
// WatcherHandler 监听key变化的处理函数
|
||||||
|
54
middleware/etcd/delete.go
Normal file
54
middleware/etcd/delete.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// Package etcd...
|
||||||
|
//
|
||||||
|
// Description : 删除相关操作
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2021-11-24 12:42 下午
|
||||||
|
package etcd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"go.etcd.io/etcd/clientv3"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeleteWithOption ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2:02 下午 2021/11/24
|
||||||
|
func DeleteWithOption(ctx context.Context, key string, timeout time.Duration, optionList ...clientv3.OpOption) (*clientv3.DeleteResponse, error) {
|
||||||
|
if nil == ctx {
|
||||||
|
ctx = context.Background()
|
||||||
|
}
|
||||||
|
|
||||||
|
if timeout <= 0 {
|
||||||
|
timeout = DefaultDeleteTimeout
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
cancelFunc context.CancelFunc
|
||||||
|
deleteResponse *clientv3.DeleteResponse
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
ctx, cancelFunc = context.WithTimeout(ctx, timeout)
|
||||||
|
defer cancelFunc()
|
||||||
|
|
||||||
|
if deleteResponse, err = Client.Delete(ctx, key, optionList...); nil != err {
|
||||||
|
return nil, errors.New("delete key fail : " + err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return deleteResponse, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteWithKeyPrefix 基于 key 前缀, 删除key
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2:12 下午 2021/11/24
|
||||||
|
func DeleteWithKeyPrefix(ctx context.Context, keyPrefix string, timeout time.Duration) (*clientv3.DeleteResponse, error) {
|
||||||
|
return DeleteWithOption(ctx, keyPrefix, timeout, clientv3.WithPrefix())
|
||||||
|
}
|
22
middleware/etcd/delete_test.go
Normal file
22
middleware/etcd/delete_test.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// Package etcd...
|
||||||
|
//
|
||||||
|
// Description : etcd...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2021-11-24 2:11 下午
|
||||||
|
package etcd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestDeleteWithKeyPrefix ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2:11 下午 2021/11/24
|
||||||
|
func TestDeleteWithKeyPrefix(t *testing.T) {
|
||||||
|
fmt.Println(DeleteWithKeyPrefix(nil, "/test", 0))
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user