All Products
Search
Document Center

SchedulerX:Hubungkan aplikasi Spring Boot ke SchedulerX

Last Updated:Apr 21, 2026

SchedulerX adalah layanan penjadwalan pekerjaan terdistribusi di 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 menghubungkan aplikasi Anda, Anda dapat mendefinisikan, menjadwalkan, dan memantau pekerjaan dari konsol SchedulerX.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Proyek Spring Boot 2.x atau 3.x

  • (Opsional) namespace untuk isolasi resource — lihat bagian "Buat namespace" di Manajemen namespace

Langkah 1: Buat aplikasi SchedulerX

Konfigurasikan pengaturan dasar

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

  2. Di panel navigasi sebelah 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.

    SettingDescriptionDefault
    Application NameNama deskriptif untuk aplikasi.None
    Application IDGroupID untuk akses agen. Harus unik dalam namespace dan dapat sesuai dengan Application Name.None
    Application TypeRegular App — tidak dideploy di Kubernetes atau tidak memerlukan pekerjaan Kubernetes. k8s App — dideploy di Kubernetes dan memerlukan pekerjaan Kubernetes.Regular App
    EditionPilih edisi sesuai kebutuhan Anda.Professional Edition
    Simple Log ServiceAktifkan untuk melihat log penjadwalan di konsol. Memerlukan konfigurasi Log4j atau Logback.Off
    load5Rata-rata beban maksimum selama 5 menit. Tidak boleh melebihi jumlah core CPU pada mesin client.0
    Memory UsageJika rata-rata penggunaan memori dalam 5 menit terakhir melebihi ambang batas ini, worker ditandai sebagai sibuk.90%
    Disk UsageJika penggunaan disk melebihi ambang batas ini, mesin client ditandai sebagai sibuk.95%
    Trigger Busy MachineLanjutkan memicu pekerjaan saat mesin sedang sibuk.On
    SettingDescriptionDefault
    Maximum Number Of JobsJumlah maksimum pekerjaan yang didukung dalam satu grup.1000
    Automatic Scale-outAktifkan untuk auto-scale. Memerlukan Global Job Count.Off
    Traffic ThrottlingAktifkan untuk throttle traffic. Memerlukan Task Instance Concurrency.Off
    CalendarJadwalkan 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.

    SettingDescription
    Notification ChannelText Message, Email, Webhook, atau Phone.
    EmailAlamat email kontak.
    WebhookURL 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 NumberNomor telepon kontak.

    image

  2. Segarkan 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 di versi 1.2.1 dan yang 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:

Login ke Konsol SchedulerX. Di panel navigasi sebelah 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. Anda dapat melihat pasangan Kunci Akses di halaman Security Management di Konsol Manajemen Pengguna.

Penting

SchedulerX dan agent harus berada di wilayah yang sama. Ketidaksesuaian wilayah menyebabkan kegagalan koneksi. Jika aplikasi dijalankan di luar Alibaba Cloud (on-premises atau penyedia cloud lain), aktifkan akses Internet dan buat aplikasi SchedulerX di wilayah Internet. Lihat Hubungkan 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 client, 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:

ParameterDescriptionDefaultSince
spring.schedulerx2.enabledAktifkan atau nonaktifkan starter SchedulerX.true0.1.7
spring.schedulerx2.hostTentukan alamat IP saat mesin memiliki beberapa NIC atau menggunakan VPN.Auto-detected0.1.7
spring.schedulerx2.portPort yang digunakan agent untuk mendengarkan.Random available port0.1.7
spring.schedulerx2.blockAppStartBlokir startup aplikasi jika SchedulerX gagal diinisialisasi.true1.1.0
spring.schedulerx2.shareContainerPoolIzinkan semua pekerjaan pada agent berbagi satu kolam thread.false1.2.1.2
spring.schedulerx2.sharePoolSizeUkuran kolam thread saat berbagi diaktifkan.641.2.1.2
spring.schedulerx2.labelLabel untuk menargetkan worker tertentu selama rilis canary atau uji stres.None1.2.2.2
spring.schedulerx2.enableCgroupMetricsGunakan cgroup untuk mengumpulkan metrik agent. Aktifkan secara manual di lingkungan Kubernetes.false1.2.2.2
spring.schedulerx2.cgroupPathPrefixPath cgroup di dalam container./sys/fs/cgroup/cpu/1.2.2.2
spring.schedulerx2.enableHeartbeatLogCatat data heartbeat ke ${user.home}/logs/schedulerx/heartbeat.log.true1.2.4
spring.schedulerx2.mapMasterStatusCheckIntervalInterval (ms) untuk memeriksa penyelesaian tugas dalam model Map. Nilai yang lebih rendah meningkatkan frekuensi penjadwalan untuk pekerjaan granularitas detik.30001.2.5.2
spring.schedulerx2.enableSecondDelayCycleIntervalMsInterpretasikan interval pekerjaan granularitas detik dalam milidetik, bukan detik.false1.2.5.2
spring.schedulerx2.broadcastMasterExecEnableWajibkan node primer untuk menjalankan pekerjaan broadcast.true1.8.13
spring.schedulerx2.broadcastDispatchRetryTimesJumlah maksimum percobaan ulang setelah pengiriman broadcast gagal. Interval percobaan ulang tetap 2 detik.31.8.13
spring.schedulerx2.enableSecondDelayStandaloneDispatchAktifkan pengiriman pekerjaan standalone granularitas detik.false1.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 menunjukkan keberhasilan
    }
}
  • @Component mendaftarkan kelas sebagai bean Spring sehingga SchedulerX dapat menemukannya.

  • Perluas JavaProcessor dan override process untuk mendefinisikan logika pekerjaan.

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

Langkah 5: Verifikasi koneksi

  1. Jalankan aplikasi Spring Boot Anda.

  2. Login ke Konsol MSE SchedulerX. Di panel navigasi sebelah 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) dan verifikasi konektivitas jaringan.

    • Lebih dari 0: Koneksi berhasil.

Langkah selanjutnya

Setelah koneksi diverifikasi, buat pekerjaan di konsol SchedulerX untuk memicu processor pekerjaan Anda. Lihat bagian "Buat pekerjaan" di Manajemen pekerjaan.

Pemecahan masalah

SymptomPossible causeSolution
Agent gagal terhubung (0 instans)Ketidaksesuaian wilayah antara SchedulerX dan agentPastikan keduanya menggunakan wilayah yang sama. Periksa nilai endpoint terhadap Endpoints.
Agent gagal terhubung (0 instans)Aplikasi dijalankan di luar Alibaba Cloud tanpa endpoint InternetAktifkan akses Internet dan buat aplikasi SchedulerX di wilayah Internet. Lihat Hubungkan melalui Internet.
Agent gagal terhubung (0 instans)GroupID atau AppKey salahBuka Applications > AccessConfig di konsol dan konfirmasi nilainya.
Startup aplikasi diblokirSchedulerX gagal diinisialisasi dengan blockAppStart=true (default)Atur spring.schedulerx2.blockAppStart=false agar aplikasi dapat dimulai tanpa SchedulerX, atau perbaiki masalah koneksi terlebih dahulu.

Lihat juga