pkg/task/example/sum_step.go

85 lines
2.0 KiB
Go

/*
* Tencent is pleased to support the open source community by making Blueking Container Service available.
* Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
* Licensed under the MIT License (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/MIT
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
// Package main xxx
package main
import (
"fmt"
"strconv"
istep "git.ifooth.com/common/pkg/task/steps/iface"
"git.ifooth.com/common/pkg/task/types"
)
const (
stepSumName = "求和任务"
sumMethod = "sum"
)
var (
sumA istep.ParamKey = "sumA"
sumB istep.ParamKey = "sumB"
sumC istep.ParamKey = "sumC"
)
// NewSumStep sum step
func NewSumStep() *SumStep {
return &SumStep{}
}
// SumStep sum step
type SumStep struct{}
// Alias step name
func (s SumStep) Alias() string {
return stepSumName
}
// GetName step name
func (s SumStep) GetName() string {
return sumMethod
}
// Execute for worker exec task
func (s SumStep) Execute(c *istep.Context) error {
a, _ := c.GetParam(sumA.String())
b, _ := c.GetParam(sumB.String())
a1, _ := strconv.Atoi(a)
b1, _ := strconv.Atoi(b)
c1 := a1 + b1
_ = c.AddCommonParam(sumC.String(), fmt.Sprintf("%v", c1))
fmt.Printf("%s %s %s sumC: %v\n", c.GetTaskID(), c.GetTaskType(), c.GetName(), c)
return nil
}
// BuildStep build step
func (s SumStep) BuildStep(kvs []istep.KeyValue, opts ...types.StepOption) *types.Step {
step := types.NewStep(s.GetName(), sumMethod, opts...)
// build step paras
for _, v := range kvs {
step.AddParam(v.Key.String(), v.Value)
}
return step
}
func init() {
// register step
istep.Register(sumMethod, NewSumStep())
}