github.com/polarismesh/polaris@v1.17.8/store/admin_api.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package store 19 20 import ( 21 "time" 22 23 "github.com/polarismesh/polaris/common/model" 24 ) 25 26 const ( 27 ElectionKeySelfServiceChecker = "polaris.checker" 28 ElectionKeyMaintainJobPrefix = "MaintainJob." 29 ) 30 31 type AdminStore interface { 32 // StartLeaderElection start leader election 33 StartLeaderElection(key string) error 34 35 // IsLeader whether it is leader node 36 IsLeader(key string) bool 37 38 // ListLeaderElections list all leaderelection 39 ListLeaderElections() ([]*model.LeaderElection, error) 40 41 // ReleaseLeaderElection force release leader status 42 ReleaseLeaderElection(key string) error 43 44 // BatchCleanDeletedInstances batch clean soft deleted instances 45 BatchCleanDeletedInstances(timeout time.Duration, batchSize uint32) (uint32, error) 46 47 // GetUnHealthyInstances get unhealthy instances which mtime time out 48 GetUnHealthyInstances(timeout time.Duration, limit uint32) ([]string, error) 49 50 // BatchCleanDeletedClients batch clean soft deleted clients 51 BatchCleanDeletedClients(timeout time.Duration, batchSize uint32) (uint32, error) 52 } 53 54 // LeaderChangeEvent 55 type LeaderChangeEvent struct { 56 Key string 57 Leader bool 58 LeaderHost string 59 }