All Products
Search
Document Center

Microservices Engine:Hubungkan aplikasi Spring Boot ke SchedulerX

Last Updated:Mar 12, 2026

Ketika aplikasi Spring Boot Anda memerlukan penjadwalan tugas terdistribusi—seperti sinkronisasi data berkala, pembersihan periodik, atau notifikasi berwaktu—SchedulerX menyediakan penjadwalan terpusat, pemantauan eksekusi, dan peringatan kegagalan tanpa perlu membangun infrastruktur penjadwalan sendiri. Setelah menyelesaikan panduan ini, aplikasi Anda akan terdaftar sebagai worker SchedulerX, dan jumlah instans yang terhubung akan muncul di konsol MSE.

Sebelum memulai

Pastikan Anda telah memiliki:

  • Proyek Spring Boot 2.x atau 3.x dengan Maven yang telah dikonfigurasi

  • (Opsional) Namespace yang dibuat di konsol MSE untuk mengisolasi resource dan layanan di berbagai lingkungan. Untuk detailnya, lihat Buat namespace.

Tinjauan alur kerja

  1. Buat aplikasi SchedulerX di konsol MSE untuk mendapatkan parameter koneksi (endpoint, namespace, GroupID, dan AppKey).

  2. Tambahkan dependensi dan konfigurasikan proyek Spring Boot Anda dengan parameter koneksi dan kelas job processor.

  3. Verifikasi koneksi dengan memeriksa jumlah instans di konsol.

Langkah 1: Buat aplikasi SchedulerX

1.1 Konfigurasi pengaturan dasar

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

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

  3. Masukkan Application Name dan Application ID, pilih Application Type, dan konfigurasikan pengaturan lanjutan jika diperlukan. Lalu klik Next.

image
Penting

Pastikan resource dibuat di wilayah dan namespace yang dipilih serta informasi resource tersebut valid.

Tabel berikut menjelaskan setiap bidang:

FieldDescriptionDefault
Application NameNama kustom untuk aplikasi.None
Application IDGroupID untuk akses client. Harus unik dalam namespace. Bisa sama dengan Application Name.None
Application TypeRegular App: tidak dideploy di Kubernetes dan tidak menggunakan Kubernetes jobs. k8s App: dideploy di Kubernetes dan menggunakan Kubernetes jobs.Regular App
EditionPilih edisi sesuai kebutuhan Anda.Professional Edition
Simple Log ServiceLihat log penjadwalan (termasuk log job terdistribusi) di konsol. Memerlukan konfigurasi Log4j atau Logback di aplikasi Anda.Off
load5Ambang batas rata-rata beban 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 dianggap sibuk.90%
Disk UsageJika penggunaan disk melebihi ambang batas ini, mesin client dianggap sibuk.95%
Trigger Busy MachineApakah eksekusi job tetap dipicu saat mesin sedang sibuk.On

Perluas Advanced Configuration untuk mengakses pengaturan tambahan.

FieldDescriptionDefault
Maximum Number Of JobsJumlah maksimum job yang didukung dalam satu grup.1000
Automatic Scale-outSecara otomatis melakukan scale-out resource. Memerlukan pengaturan Global Job Count.Off
Traffic ThrottlingMembatasi trafik untuk mencegah overload. Memerlukan pengaturan Task Instance Concurrency.Off
CalendarPenjadwalan berdasarkan Financial Day (hari perdagangan untuk bisnis finansial) atau Workday (hari kerja standar).0

1.2 Konfigurasi notifikasi

  1. Pada halaman Notification Configuration, pilih Notification Channel dan atur Contact. Saluran notifikasi yang didukung: Text Message, Email, Webhook, dan Phone. Untuk detail konfigurasi webhook, lihat Deskripsi konfigurasi Webhook.

  2. Tambahkan penerima notifikasi: Tabel berikut menjelaskan setiap bidang kontak:

    FieldDescription
    Notification ChannelSaluran yang didukung: Text Message, Email, Webhook, dan Phone.
    EmailAlamat email kontak.
    WebhookURL Webhook untuk WeCom, Lark, atau DingTalk. Pisahkan beberapa URL dengan koma (,). Untuk DingTalk, tambahkan kata kunci case-sensitive "SchedulerX" ke konfigurasi robot. Untuk detailnya, lihat Dokumentasi Developer DingTalk, Dokumentasi Developer WeCom, dan Dokumentasi Developer Lark.
    Mobile Phone NumberNomor ponsel kontak.

    image

    image

  3. Setelah menyelesaikan konfigurasi notifikasi, refresh halaman Application Management dan verifikasi bahwa aplikasi baru muncul dalam daftar di bawah wilayah dan namespace yang dipilih.

Langkah 2: Hubungkan aplikasi Spring Boot Anda

2.1 Tambahkan dependensi Maven

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

<dependency>
    <groupId>com.aliyun.schedulerx</groupId>
    <artifactId>schedulerx2-spring-boot-starter</artifactId>
    <version>1.11.5</version> <!-- Ganti dengan versi terbaru -->
    <!-- Exclude Log4j jika Anda menggunakan Logback -->
    <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>
Penting

Ganti 1.11.5 dengan versi client terbaru. Untuk informasi versi, lihat Catatan rilis versi client.

2.2 Konfigurasi parameter koneksi

Tambahkan properti berikut ke file application.properties Anda. Empat parameter diperlukan untuk menghubungkan SchedulerxWorker ke SchedulerX:

# --- Required ---
spring.schedulerx2.endpoint=<your-endpoint>       # Endpoint regional (lihat tabel di bawah)
spring.schedulerx2.namespace=<your-namespace-id>   # UID namespace dari halaman Namespaces
spring.schedulerx2.groupId=<your-group-id>         # Application ID dari Application Management
spring.schedulerx2.appKey=<your-app-key>           # Kunci aplikasi (agent 1.2.1+)

# --- Alternatif autentikasi (jika tidak menggunakan appKey) ---
# spring.schedulerx2.aliyunAccessKey=<your-access-key-id>
# spring.schedulerx2.aliyunSecretKey=<your-access-key-secret>
# spring.schedulerx2.stsToken=<your-sts-token>

Ganti placeholder dengan nilai aktual Anda:

PlaceholderDescriptionWhere to find it
<your-endpoint>Endpoint regional untuk SchedulerX.Daftar endpoint
<your-namespace-id>Namespace UID.Namespaces page in the console
<your-group-id>Application ID (GroupID).Application Management page in the console
<your-app-key>Kunci aplikasi.Application Management page in the console

Untuk menemukan parameter koneksi Anda dengan cepat, buka halaman Application Management, klik Access Configuration di kolom Actions untuk aplikasi Anda, lalu pilih Spring Boot.

Access configuration
Penting
  • Wilayah SchedulerX dan wilayah agent harus sesuai. Jika tidak, agent tidak dapat terhubung.

  • Jika aplikasi Anda berjalan di server non-Alibaba Cloud atau di lingkungan on-premises, aktifkan akses Internet dan buat aplikasi SchedulerX di wilayah Internet. Untuk detailnya, lihat Hubungkan ke SchedulerX melalui Internet dari lingkungan on-premises.

Catatan

Untuk mengelola beberapa kelompok aplikasi dalam satu client, gunakan GroupID yang dipisahkan koma: spring.schedulerx2.groupId=animals.dog,animals.cat. Buat setiap grup secara terpisah di konsol—mereka berbagi instans client yang sama.

2.3 Buat job processor

Perluas JavaProcessor untuk menangani tugas terjadwal. Contoh berikut mencetak pesan setiap kali job 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);  // Mengembalikan true untuk menandakan keberhasilan
    }
}

Langkah 3: Verifikasi koneksi

  1. Jalankan aplikasi Spring Boot Anda.

  2. Masuk ke Konsol MSE SchedulerX.

  3. Di panel navigasi kiri, klik Application Management. Pilih wilayah dan namespace yang benar.

  4. Periksa kolom Total Instances untuk aplikasi Anda.

    • Total Instances > 0: aplikasi berhasil terhubung. Angka tersebut menunjukkan jumlah instans pekerja yang terhubung.

    • Total Instances = 0: koneksi gagal. Periksa parameter konfigurasi dan konektivitas jaringan Anda.

image

Langkah selanjutnya

Setelah koneksi berhasil, buat tugas terjadwal di konsol SchedulerX. Untuk detailnya, lihat Buat tugas penjadwalan.

Referensi konfigurasi

Semua properti spring.schedulerx2.* tercantum di bawah ini. Hanya endpoint, namespace, groupId, dan appKey yang wajib diisi.

PropertyDescriptionDefaultSince
spring.schedulerx2.enabledAktifkan atau nonaktifkan starter SchedulerX 2.0.true0.1.7
spring.schedulerx2.endpointEndpoint regional. Lihat Daftar endpoint.N/A0.1.7
spring.schedulerx2.namespaceUID namespace, dari halaman Namespaces.None0.1.7
spring.schedulerx2.groupIdApplication ID, dari halaman Application Management.N/A0.1.7
spring.schedulerx2.appKeyKunci aplikasi, dari halaman Application Management.N/A1.2.1
spring.schedulerx2.hostAlamat IP aktual saat terdapat beberapa IP (VPN, multiple NICs).N/A0.1.7
spring.schedulerx2.portPort kustom untuk listener client. Port acak yang tersedia akan digunakan jika tidak diatur.None0.1.7
spring.schedulerx2.blockAppStartBlokir startup aplikasi jika inisialisasi SchedulerX gagal.true1.1.0
spring.schedulerx2.shareContainerPoolBagikan kolam thread di seluruh eksekusi tugas pada client.false1.2.1.2
spring.schedulerx2.sharePoolSizeUkuran kolam thread saat shareContainerPool diaktifkan.641.2.1.2
spring.schedulerx2.labelTag untuk client. Gunakan bersama manajemen tugas untuk rilis canary atau uji stres.N/A1.2.2.2
spring.schedulerx2.enableCgroupMetricsKumpulkan metrik menggunakan cgroup. Aktifkan secara manual di lingkungan container Kubernetes.false1.2.2.2
spring.schedulerx2.cgroupPathPrefixPath cgroup di dalam container./sys/fs/cgroup/cpu/1.2.2.2
spring.schedulerx2.enableHeartbeatLogTulis log heartbeat ke ${user.home}/logs/schedulerx/heartbeat.log.true1.2.4
spring.schedulerx2.mapMasterStatusCheckIntervalInterval (ms) untuk memeriksa apakah semua sub-tugas telah selesai dalam model Map. Nilai yang lebih rendah meningkatkan frekuensi penjadwalan untuk job dengan granularitas detik.30001.2.5.2
spring.schedulerx2.enableSecondDelayCycleIntervalMsInterpretasikan latensi second_delay dalam milidetik, bukan detik, sehingga meningkatkan frekuensi penjadwalan.false1.2.5.2
spring.schedulerx2.broadcastMasterExecEnableApakah node primary ikut serta dalam eksekusi tugas broadcast.true1.8.13
spring.schedulerx2.broadcastDispatchRetryTimesJumlah maksimum percobaan ulang setelah kegagalan dispatch broadcast. Interval percobaan ulang tetap 2 detik.31.8.13
spring.schedulerx2.enableSecondDelayStandaloneDispatchJalankan pekerjaan mandiri setiap detik.false1.8.13

FAQ

Topik terkait

Untuk metode koneksi client lainnya, lihat Cepat menghubungkan client ke SchedulerX.