All Products
Search
Document Center

SchedulerX:Menghubungkan aplikasi Spring Boot ke SchedulerX

Last Updated:Sep 26, 2026

SchedulerX adalah layanan penjadwalan pekerjaan terdistribusi dalam Microservices Engine (MSE). Layanan ini menggunakan arsitektur server-agent: server SchedulerX menangani penjadwalan dan koordinasi, sedangkan agent yang tertanam dalam aplikasi Spring Boot Anda menjalankan pekerjaan. Setelah aplikasi terhubung, Anda dapat mendefinisikan, menjadwalkan, dan memantau pekerjaan melalui Konsol SchedulerX.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Proyek Spring Boot 2.x atau 3.x

  • (Opsional) namespace untuk isolasi resource — lihat bagian "Buat namespace" pada Pengelolaan namespace

Langkah 1: Buat aplikasi SchedulerX

Konfigurasikan pengaturan dasar

  1. Masuk ke Konsol MSE SchedulerX dan pilih wilayah di bilah navigasi atas.

  2. Di panel navigasi kiri, klik Application Management. Pilih Namespace, lalu klik Create Application.

  3. Masukkan pengaturan berikut dan klik Next.

    Penting

    Buat resource di wilayah dan namespace yang benar. Pastikan informasi resource valid.

    Setting

    Description

    Default

    Application Name

    Nama deskriptif untuk aplikasi.

    None

    Application ID

    GroupID untuk akses agent. Harus unik dalam namespace. Dapat sama dengan Application Name.

    None

    Application Type

    Regular App — tidak dideploy di Kubernetes atau tidak memerlukan pekerjaan Kubernetes. k8s App — dideploy di Kubernetes dan memerlukan pekerjaan Kubernetes.

    Regular App

    Edition

    Pilih edisi sesuai kebutuhan Anda.

    Professional Edition

    Simple Log Service

    Aktifkan untuk melihat log penjadwalan di konsol. Memerlukan konfigurasi Log4j atau Logback.

    Off

    load5

    Rata-rata beban maksimum selama 5 menit. Tidak boleh melebihi jumlah core CPU pada mesin klien.

    0

    Memory Usage

    Jika rata-rata penggunaan memori dalam 5 menit terakhir melebihi ambang batas ini, worker ditandai sebagai sibuk.

    90%

    Disk Usage

    Jika penggunaan disk melebihi ambang batas ini, mesin klien ditandai sebagai sibuk.

    95%

    Trigger Busy Machine

    Lanjutkan memicu pekerjaan saat mesin sedang sibuk.

    On

    Setting

    Description

    Default

    Maximum Number Of Jobs

    Jumlah maksimum pekerjaan yang didukung dalam satu kelompok.

    1000

    Automatic Scale-out

    Aktifkan untuk penskalaan otomatis. Memerlukan Global Job Count.

    Off

    Traffic Throttling

    Aktifkan untuk pengendalian aliran trafik. Memerlukan Task Instance Concurrency.

    Off

    Calendar

    Jadwalkan menggunakan Financial Day (hari perdagangan) atau Workday (hari kerja).

    0

    image

Konfigurasikan notifikasi

  1. Pada halaman Notification Configuration, pilih Notification Channel dan atur Contacts. Tambahkan kontak secara individual atau gunakan grup kontak. Untuk membuat grup kontak, lihat Buat kontak notifikasi atau grup kontak notifikasi.

    Setting

    Description

    Notification Channel

    Text Message, Email, Webhook, atau Phone.

    Email

    Alamat email kontak.

    Webhook

    URL webhook untuk WeCom, Lark, atau DingTalk. Pisahkan beberapa URL dengan koma (,). Untuk DingTalk, tambahkan kata kunci "SchedulerX" (case-sensitive) ke konfigurasi robot. Untuk detail pengaturan webhook, lihat Deskripsi konfigurasi webhook. Untuk informasi cara mendapatkan URL webhook, lihat Dokumentasi Developer DingTalk, Dokumentasi Developer WeCom, dan Dokumentasi Developer Lark.

    Mobile Phone Number

    Nomor telepon kontak.

    image

  2. Muat ulang halaman dan pastikan aplikasi Anda muncul di bawah wilayah dan namespace yang dipilih.

Langkah 2: Tambahkan dependensi SchedulerX

Tambahkan dependensi schedulerx2-spring-boot-starter ke file pom.xml proyek Spring Boot Anda:

<dependency>
  <groupId>com.aliyun.schedulerx</groupId>
  <artifactId>schedulerx2-spring-boot-starter</artifactId>
  <version>1.11.5</version>  <!-- Ganti dengan versi terbaru -->
</dependency>
Penting

Ganti versi dengan versi agent terbaru. Untuk riwayat versi, lihat Catatan rilis agent.

Jika proyek Anda menggunakan Logback, kecualikan dependensi Log4j yang disertakan:

<dependency>
  <groupId>com.aliyun.schedulerx</groupId>
  <artifactId>schedulerx2-spring-boot-starter</artifactId>
  <version>1.11.5</version>
  <exclusions>
    <exclusion>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
    </exclusion>
    <exclusion>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </exclusion>
  </exclusions>
</dependency>

Langkah 3: Konfigurasikan parameter koneksi

Tambahkan properti berikut ke application.properties:

# Wajib: Pengaturan koneksi SchedulerX
spring.schedulerx2.endpoint=${endpoint}
spring.schedulerx2.namespace=${namespace}
spring.schedulerx2.groupId=${groupId}
# Parameter appKey hanya didukung pada versi 1.2.1 dan lebih baru.
spring.schedulerx2.appKey=${appKey}

# Jika Anda tidak menggunakan appKey, Anda dapat menggunakan AccessKey dan SecretKey Alibaba Cloud, atau token STS.
#spring.schedulerx2.aliyunAccessKey=${aliyunAccessKey}
#spring.schedulerx2.aliyunSecretKey=${aliyunSecretKey}
#spring.schedulerx2.stsToken=${aliyunStsToken}

Sumber parameter:

Masuk ke Konsol SchedulerX. Di panel navigasi kiri, klik Applications. Temukan aplikasi yang ingin Anda kelola dan klik AccessConfig di kolom Operation. Di panel AccessConfig, pilih Spring Boot dari dropdown.

image

Deskripsi parameter:

  • endpoint: Titik akhir SchedulerxWorker. Nilainya harus sesuai dengan titik akhir wilayah tempat aplikasi Anda dideploy. Untuk informasi lebih lanjut, lihat Endpoints.

  • namespace: ID namespace tempat aplikasi berada. Anda dapat melihat ID namespace di halaman Namespaces di Konsol SchedulerX. 1

  • groupId dan appKey: ID dan kunci aplikasi. Anda dapat melihat nilainya di halaman Applications di Konsol SchedulerX. 1

  • aliyunAccessKey dan aliyunSecretKey: ID AccessKey dan Rahasia AccessKey Akun Alibaba Cloud Anda.

Penting

SchedulerX dan agent harus berada di wilayah yang sama. Ketidaksesuaian wilayah menyebabkan kegagalan koneksi. Jika aplikasi berjalan di luar Alibaba Cloud (on-premises atau penyedia cloud lain), aktifkan akses Internet dan buat aplikasi SchedulerX di wilayah Internet. Lihat Menghubungkan ke SchedulerX melalui Internet dari lingkungan on-premises.

Jika aplikasi menggunakan YAML, tambahkan pengaturan ini ke application.yml sebagai gantinya:

spring:
  schedulerx2:
    endpoint: ${endpoint}
    namespace: ${namespace}
    groupId: ${groupId}
    appKey: ${appKey}
Catatan

Untuk mengelola beberapa aplikasi dari satu klien, pisahkan ID aplikasi dengan koma: spring.schedulerx2.groupId=animals.dog,animals.cat. Setiap aplikasi diisolasi untuk pengelolaan izin dan tidak memerlukan worker terpisah.

Parameter opsional

Parameter berikut mendukung kasus penggunaan lanjutan:

Parameter

Description

Default

Since

spring.schedulerx2.enabled

Aktifkan atau nonaktifkan starter SchedulerX.

true

0.1.7

spring.schedulerx2.host

Tentukan alamat IP ketika mesin memiliki beberapa NIC atau menggunakan VPN.

Auto-detected

0.1.7

spring.schedulerx2.port

Port tempat agent mendengarkan.

Random available port

0.1.7

spring.schedulerx2.blockAppStart

Blokir startup aplikasi jika SchedulerX gagal diinisialisasi.

true

1.1.0

spring.schedulerx2.shareContainerPool

Izinkan semua pekerjaan pada agent berbagi satu kolam thread.

false

1.2.1.2

spring.schedulerx2.sharePoolSize

Ukuran kolam thread saat berbagi diaktifkan.

64

1.2.1.2

spring.schedulerx2.label

Label untuk menargetkan worker tertentu selama rilis canary atau uji stres.

None

1.2.2.2

spring.schedulerx2.enableCgroupMetrics

Gunakan cgroup untuk mengumpulkan metrik agent. Aktifkan secara manual di lingkungan Kubernetes.

false

1.2.2.2

spring.schedulerx2.cgroupPathPrefix

Jalur cgroup dalam container.

/sys/fs/cgroup/cpu/

1.2.2.2

spring.schedulerx2.enableHeartbeatLog

Catat data heartbeat ke ${user.home}/logs/schedulerx/heartbeat.log.

true

1.2.4

spring.schedulerx2.mapMasterStatusCheckInterval

Interval (ms) untuk memeriksa penyelesaian tugas dalam model Map. Nilai yang lebih rendah meningkatkan frekuensi penjadwalan untuk pekerjaan granularitas detik.

3000

1.2.5.2

spring.schedulerx2.enableSecondDelayCycleIntervalMs

Interpretasikan interval pekerjaan granularitas detik dalam milidetik, bukan detik.

false

1.2.5.2

spring.schedulerx2.broadcastMasterExecEnable

Wajibkan node primary menjalankan pekerjaan broadcast.

true

1.8.13

spring.schedulerx2.broadcastDispatchRetryTimes

Jumlah maksimum percobaan ulang setelah pengiriman broadcast gagal. Interval percobaan ulang tetap 2 detik.

3

1.8.13

spring.schedulerx2.enableSecondDelayStandaloneDispatch

Aktifkan pengiriman pekerjaan standalone granularitas detik.

false

1.8.13

Langkah 4: Buat processor pekerjaan

Buat kelas yang memperluas JavaProcessor untuk mendefinisikan logika pekerjaan. Contoh berikut mencetak pesan setiap kali dijalankan:

package com.aliyun.schedulerx.test.job;

import com.alibaba.schedulerx.worker.domain.JobContext;
import com.alibaba.schedulerx.worker.processor.JavaProcessor;
import com.alibaba.schedulerx.worker.processor.ProcessResult;
import org.springframework.stereotype.Component;

@Component
public class MyHelloJob extends JavaProcessor {

    @Override
    public ProcessResult process(JobContext context) throws Exception {
        System.out.println("hello schedulerx2.0");
        return new ProcessResult(true);  // Kembalikan true untuk menandakan sukses
    }
}
  • @Component mendaftarkan kelas sebagai bean Spring sehingga SchedulerX dapat menemukannya.

  • Perluas JavaProcessor dan override metode process untuk mendefinisikan logika pekerjaan.

  • Kembalikan new ProcessResult(true) untuk menandakan sukses atau new ProcessResult(false) untuk menandakan kegagalan.

Langkah 5: Verifikasi koneksi

  1. Jalankan aplikasi Spring Boot Anda.

  2. Masuk ke Konsol MSE SchedulerX. Di panel navigasi kiri, klik Applications.

  3. Temukan aplikasi Anda dan klik View instances di kolom Operation.

    View instances

  4. Periksa kolom Total number of instances:

    • 0: Koneksi gagal. Periksa parameter konfigurasi Anda (wilayah, endpoint, namespace, dan GroupID) serta verifikasi konektivitas jaringan.

    • Lebih besar dari 0: Koneksi berhasil.

Langkah selanjutnya

Setelah koneksi diverifikasi, buat pekerjaan di Konsol SchedulerX untuk memicu processor pekerjaan Anda. Lihat bagian "Buat pekerjaan" pada Pengelolaan pekerjaan.

Pemecahan masalah

Symptom

Possible cause

Solution

Agent gagal terhubung (0 instans)

Ketidaksesuaian wilayah antara SchedulerX dan agent

Pastikan keduanya menggunakan wilayah yang sama. Periksa nilai endpoint terhadap Endpoints.

Agent gagal terhubung (0 instans)

Aplikasi berjalan di luar Alibaba Cloud tanpa endpoint Internet

Aktifkan akses Internet dan buat aplikasi SchedulerX di wilayah Internet. Lihat Menghubungkan melalui Internet.

Agent gagal terhubung (0 instans)

GroupID atau AppKey salah

Buka Applications > AccessConfig di konsol dan konfirmasi nilainya.

Startup aplikasi diblokir

SchedulerX gagal diinisialisasi dengan blockAppStart=true (default)

Atur spring.schedulerx2.blockAppStart=false agar aplikasi dapat berjalan tanpa SchedulerX, atau perbaiki masalah koneksi terlebih dahulu.

Lihat juga