SchedulerX支持Go版本SDK

简介: Go语言越来越流行,SchedulerX是阿里云的分布式任务调度服务,新增支持Go版本SDK

简介

随着近几年云原生技术特别是Kubernetes的兴起,Go语言越来越流行。Go语言以其简洁、高性能(默认支持协程)得到了很多开发者的认可。

SchedulerX是阿里云的分布式任务调度服务,之前支持Java SDK,Agent,kubernetes等接入方式,本次新增支持Go SDK接入。


功能

当前版本只支持单机执行。广播任务、MapReduce等分布式模型后续支持。

由于Go使用协程运行任务,所以不支持停止任务。


接入步骤

控制台接入

  1. 登录SchedulerX,创建一个普通应用,然后点接入配置,会返回客户端需要的配置信息
Endpoint=xxxx
Namespace=xxxx
GroupId=xxx
AppKey=xxx


  1. 创建一个golang类型任务

image.png


客户端接入

  1. 拉取Go版本SDK
go get github.com/alibaba/schedulerx-worker-go@{最新的tag}
  1. 实现Processor接口,编写业务代码
typeProcessorinterface {
Process(ctx*processor.JobContext) (*ProcessResult, error)
}

举个例子

packagemainimport (
"fmt""github.com/alibaba/schedulerx-worker-go/processor""github.com/alibaba/schedulerx-worker-go/processor/jobcontext""time")
var_processor.Processor=&HelloWorld{}
typeHelloWorldstruct{}
func (h*HelloWorld) Process(ctx*jobcontext.JobContext) (*processor.ProcessResult, error) {
fmt.Println("[Process] Start process my task: Hello world!")
// mock execute tasktime.Sleep(3*time.Second)
ret :=new(processor.ProcessResult)
ret.SetStatus(processor.InstanceStatusSucceed)
fmt.Println("[Process] End process my task: Hello world!")
returnret, nil}
  1. 注册client和job,任务名称要和控制台保持一致
packagemainimport (
"github.com/alibaba/schedulerx-worker-go")
funcmain() {
// This is just an example, the real configuration needs to be obtained from the platformcfg :=&schedulerx.Config{
Endpoint:  "acm.aliyun.com",
Namespace: "433d8b23-xxx-xxx-xxx-90d4d1b9a4af",
GroupId:   "xueren_sub",
AppKey:    "xxxxxx",
    }
client, err :=schedulerx.GetClient(cfg)
iferr!=nil {
panic(err)
    }
task :=&HelloWorld{}
// 给你的任务取一个名字,并注册到client中,要和控制台保持一致client.RegisterTask("HelloWorld", task)
select {}
}
目录
相关文章
|
5月前
|
API 开发工具
SDK版本问题
SDK版本问题
52 1
|
4月前
|
Dubbo 应用服务中间件 API
Go语言微服务框架重磅升级:dubbo-go v3.2.0 -alpha 版本预览
随着 Dubbo3 在云原生微服务方向的快速发展,Dubbo 的 go 语言实现迎来了 Dubbo3 版本以来最全面、最大幅度的一次升级,这次升级是全方位的,涉及 API、协议、流量管控、可观测能力等。
|
6月前
|
存储 Go API
怎么发布 Go Modules v1 版本?
怎么发布 Go Modules v1 版本?
35 0
|
3月前
|
开发工具 Android开发
Android获取SDK的版本信息
Android获取SDK的版本信息
39 0
|
5月前
|
开发工具
Queen智能美化特效SDK需要高级美颜、常见美型、美体这样是属于按版本买,还是按客户端计费?
Queen智能美化特效SDK需要高级美颜、常见美型、美体这样是属于按版本买,还是按客户端计费?
27 1
|
5月前
|
Shell Go 网络安全
openssl 证书生成笔记(go 1.15版本以上)
openssl 证书生成笔记(go 1.15版本以上)
|
6月前
|
缓存 JSON Go
Go 语言各个版本支持 Go Modules 的演进史
Go 语言各个版本支持 Go Modules 的演进史
47 1
|
6月前
|
存储 Go API
Go Modules 如何创建和发布 v2 及更高版本?
Go Modules 如何创建和发布 v2 及更高版本?
69 0
|
7月前
|
fastjson Java 开发工具
钉钉Stream SDK 默认使用的是 FastJSON 1.2.63 版本
钉钉Stream SDK 默认使用的是 FastJSON 1.2.63 版本
85 1
|
6天前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。