All Products
Search
Document Center

Microservices Engine:Integrasi Go SDK

Last Updated:Jun 21, 2026

Topik ini menjelaskan cara menyambungkan aplikasi Go ke SchedulerX menggunakan Go SDK.

Konfigurasi konsol

  1. Lihat Buat aplikasi untuk membuat aplikasi standar, lalu ikuti Langkah 2 guna menemukan informasi konfigurasinya.

    Pada daftar aplikasi, temukan aplikasi target dan klik Access Configuration di kolom Operation.

    Pilih Golang untuk mendapatkan parameter koneksi berikut.

    Endpoint:   acm.aliyun.com,
    Namespace:  433d8b23-xxx-a-90d4d1b9a4af,
    GroupId:    xxl-job-test,
    AppKey:     b0iXMY3Bxxx+Gew==,

  2. Untuk membuat Go job, lihat Manajemen job.

    Pada langkah Konfigurasi Dasar, atur Job Name menjadi hellogo, pilih Application target, atur Job Type menjadi golang, atur Task Name menjadi HelloWorld, atur Execution mode menjadi Standalone, atur Priority menjadi Medium, dan tentukan Job parameters sesuai kebutuhan.

Integrasi client

  1. Jalankan perintah berikut untuk mengambil versi terbaru SchedulerX Go SDK dengan menentukan tag tertentu.

    go get github.com/alibaba/schedulerx-worker-go@{LATEST_TAG}

    Atau, jalankan perintah berikut untuk mengambil branch tertentu.

    go get github.com/alibaba/schedulerx-worker-go@{BRANCH_NAME}
  2. Tulis logika bisnis Anda dengan mengimplementasikan antarmuka Processor.

    type Processor interface {
        Process(ctx *processor.JobContext) (*ProcessResult, error)
    }

    Contoh:

    package main
    import (
    	"fmt"
    	"github.com/alibaba/schedulerx-worker-go/processor"
    	"github.com/alibaba/schedulerx-worker-go/processor/jobcontext"
    	"time"
    )
    var _ processor.Processor = &HelloWorld{}
    type HelloWorld struct{}
    func (h *HelloWorld) Process(ctx *jobcontext.JobContext) (*processor.ProcessResult, error) {
    	fmt.Println("[Process] Start process my task: Hello world!")
    	// mock execute task
    	time.Sleep(3 * time.Second)
    	ret := new(processor.ProcessResult)
    	ret.SetStatus(processor.InstanceStatusSucceed)
    	fmt.Println("[Process] End process my task: Hello world!")
    	return ret, nil
    }
    
  3. Daftarkan client dan job. Nama task harus sesuai dengan nama yang dikonfigurasi di konsol.

    package main
    import (
    	"github.com/alibaba/schedulerx-worker-go"
    )
    func main() {
    	// Ini hanya contoh, dapatkan konfigurasi aktual dari konsol
    	cfg := &schedulerx.Config{
    		Endpoint:  "acm.aliyun.com",
    		Namespace: "433d8b23-xxx-xxx-xxx-90d4d1b9a4af",
    		GroupId:   "xueren_sub",
    		AppKey:    "xxxxxx",
    	}
    	client, err := schedulerx.GetClient(cfg)
    	if err != nil {
    		panic(err)
    	}
    	task := &HelloWorld{}
    	// Daftarkan task menggunakan nama yang sesuai dengan yang dikonfigurasi di konsol.
    	client.RegisterTask("HelloWorld", task)
    	select {}
    }
    

Parameter konfigurasi client

Parameter

API

Deskripsi

Custom port

config.WithGrpcPort

Untuk job non-standalone, worker saling berkomunikasi. Anda dapat menentukan port untuk komunikasi ini. Jika tidak ditentukan, port idle acak akan digunakan.

Custom NIC

config.WithIface

Jika mesin memiliki beberapa Network Interface Controller (NIC), tentukan NIC berdasarkan nama untuk menggunakan alamat IP-nya.

Custom tag

config.WithLabel

Anda dapat melampirkan tag ke client dan mengonfigurasi job agar hanya berjalan pada client dengan tag tersebut. Fitur ini umum digunakan untuk rilis canary dan pengujian.

Contoh:

func main() {
    // Ini hanya contoh, dapatkan konfigurasi aktual dari konsol
    cfg := &schedulerx.Config{
        Endpoint:  "acm.aliyun.com",
        Namespace: "fa6ed99e-xxxxxx-a2bf1659d039",
        GroupId:   "xueren_test_sub",
        AppKey:    "myV5K5Xaf1kxxxxxxxx",
    }
    client, err := schedulerx.GetClient(cfg, schedulerx.WithWorkerConfig(config.NewWorkerConfig(
        config.WithGrpcPort(8001),
        config.WithIface("eth0")))),
        config.WithLabel("test")
    if err != nil {
        panic(err)
    }
    // Nama task, TestMapReduceJob, harus sesuai dengan nama yang dikonfigurasi di konsol.
    task := &TestMapReduceJob{
        mapjob.NewMapReduceJobProcessor(), // FIXME how define user behavior
    }
    client.RegisterTask("TestMapReduceJob", task)
    select {}
}

Verifikasi hasil

  1. Setelah mengonfigurasi client, deploy aplikasi ke Alibaba Cloud.

  2. Masuk ke Konsol MSE SchedulerX.

  3. Di bilah navigasi atas, pilih wilayah.

  4. Di panel navigasi kiri, klik Application Management.

  5. Pada halaman Application Management, periksa nilai Total number of instances.

    • Jika Total number of instances bernilai 0, aplikasi gagal tersambung. Periksa konfigurasi client Anda.

    • Nilai lebih dari 0 pada Total number of instances menunjukkan koneksi berhasil dan merepresentasikan jumlah instans yang tersambung. Di kolom Actions, klik View instances untuk melihat daftar detail di kotak dialog Connect to an instance.

Langkah selanjutnya

Setelah aplikasi tersambung ke SchedulerX, Anda dapat membuat tugas penjadwalan di Platform Penjadwalan Tugas Terdistribusi. Untuk informasi selengkapnya, lihat Buat tugas penjadwalan.

Dokumentasi terkait

Go jobs.