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 {}
}
目录
相关文章
|
2月前
|
Shell Go 开发工具
【Azure Developer】Go语言调用Azure SDK如何登录到中国区Azure环境
【Azure Developer】Go语言调用Azure SDK如何登录到中国区Azure环境
|
2月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
3月前
|
JSON Java Serverless
函数计算产品使用问题之如何使用Go SDK从HTTP上下文中提取JSON数据
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
机器学习/深度学习 人工智能 Java
人工智能平台PAI使用问题之Java SDK支持哪些版本
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
4月前
|
存储 人工智能 Java
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
49 2
|
3月前
|
分布式计算 大数据 Go
MaxCompute操作报错合集之使用go sdk调用GetTunnelEndpoint出现报错:InvalidAction.NotFoundSpecified api is not found,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
4月前
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
49 0
|
4月前
|
Go 开发者
GVM:Go语言版本和包管理的神器!
GVM,Go版本管理器,简化了在单机上切换不同Go版本的任务。
98 0
|
5月前
|
Java 开发工具 Maven
sdk2.9.2的版本缺少方法
在IntelliJ IDEA中,SDK版本2.9.2。当前阿里云Maven仓库被用于获取SDK。需要新SDK
39 0
|
2月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
59 0