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 {}
}
目录
相关文章
|
6月前
|
API 开发工具
SDK版本问题
SDK版本问题
54 1
|
1天前
|
Java 开发工具 Maven
sdk2.9.2的版本缺少方法
在IntelliJ IDEA中,SDK版本2.9.2。当前阿里云Maven仓库被用于获取SDK。需要新SDK
|
1天前
|
开发工具
钉钉新版本sdk中如何获取用户手机id
钉钉新版本sdk中如何获取用户手机id
|
2天前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
49 9
|
2天前
|
数据采集 缓存 Linux
🔥🔥🔥最稳定好用的跨平台SDK版本管理器(version-manager)
version-manager (vm)是一个全平台的、精简的版本管理工具,旨在无缝管理多种编程语言,包括新兴语言如 vlang、zig 和 typst。与fnm、sdkman等工具不同,vm专注于提供流畅、稳定的体验,通过内置机制隔离和缓存爬虫数据,避免插件需求。它支持代理设置和多线程下载,优化了国内用户下载速度。vm覆盖40+语言和工具的安装、切换及环境管理,简化了资源查找和SDK管理。欢迎访问 <https://github.com/gvcgo/version-manager> 参与项目。演示动图分别适用于MacOS、Windows和Linux。
🔥🔥🔥最稳定好用的跨平台SDK版本管理器(version-manager)
|
5月前
|
Dubbo 应用服务中间件 API
Go语言微服务框架重磅升级:dubbo-go v3.2.0 -alpha 版本预览
随着 Dubbo3 在云原生微服务方向的快速发展,Dubbo 的 go 语言实现迎来了 Dubbo3 版本以来最全面、最大幅度的一次升级,这次升级是全方位的,涉及 API、协议、流量管控、可观测能力等。
|
7月前
|
存储 Go API
怎么发布 Go Modules v1 版本?
怎么发布 Go Modules v1 版本?
38 0
|
2天前
|
开发工具 Android开发
Android获取SDK的版本信息
Android获取SDK的版本信息
46 0
|
6月前
|
开发工具
Queen智能美化特效SDK需要高级美颜、常见美型、美体这样是属于按版本买,还是按客户端计费?
Queen智能美化特效SDK需要高级美颜、常见美型、美体这样是属于按版本买,还是按客户端计费?
29 1
|
6月前
|
Shell Go 网络安全
openssl 证书生成笔记(go 1.15版本以上)
openssl 证书生成笔记(go 1.15版本以上)