github.com/polarismesh/polaris@v1.17.8/common/batchjob/config.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 batchjob 19 20 import ( 21 "errors" 22 "time" 23 ) 24 25 // CtrlConfig CtrlConfig . 26 type CtrlConfig struct { 27 // Label 批任务执行器标签 28 Label string `json:"label"` 29 // QueueSize 注册请求队列的长度 30 QueueSize uint32 `json:"queueSize"` 31 // WaitTime 最长多久一次批量操作 32 WaitTime time.Duration `json:"waitTime"` 33 // MaxBatchCount 每次操作最大的批量数 34 MaxBatchCount uint32 `json:"maxBatchCount"` 35 // Concurrency 任务工作协程数量 36 Concurrency uint32 `json:"concurrency"` 37 // Handler 任务处理函数 38 Handler func(tasks []Future) 39 } 40 41 func (c CtrlConfig) Verify() error { 42 if c.Handler == nil { 43 return errors.New("Handler is nil") 44 } 45 if c.Label == "" { 46 return errors.New("Label is empty") 47 } 48 return nil 49 }