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
Buat aplikasi SchedulerX di konsol MSE untuk mendapatkan parameter koneksi (endpoint, namespace, GroupID, dan AppKey).
Tambahkan dependensi dan konfigurasikan proyek Spring Boot Anda dengan parameter koneksi dan kelas job processor.
Verifikasi koneksi dengan memeriksa jumlah instans di konsol.
Langkah 1: Buat aplikasi SchedulerX
1.1 Konfigurasi pengaturan dasar
Masuk ke Konsol MSE SchedulerX dan pilih wilayah di bilah navigasi atas.
Di panel navigasi kiri, klik Application Management. Pilih sebuah Namespace, lalu klik Create Application.
Masukkan Application Name dan Application ID, pilih Application Type, dan konfigurasikan pengaturan lanjutan jika diperlukan. Lalu klik Next.

Pastikan resource dibuat di wilayah dan namespace yang dipilih serta informasi resource tersebut valid.
Tabel berikut menjelaskan setiap bidang:
| Field | Description | Default |
|---|---|---|
| Application Name | Nama kustom untuk aplikasi. | None |
| Application ID | GroupID untuk akses client. Harus unik dalam namespace. Bisa sama dengan Application Name. | None |
| Application Type | Regular App: tidak dideploy di Kubernetes dan tidak menggunakan Kubernetes jobs. k8s App: dideploy di Kubernetes dan menggunakan Kubernetes jobs. | Regular App |
| Edition | Pilih edisi sesuai kebutuhan Anda. | Professional Edition |
| Simple Log Service | Lihat log penjadwalan (termasuk log job terdistribusi) di konsol. Memerlukan konfigurasi Log4j atau Logback di aplikasi Anda. | Off |
| load5 | Ambang batas rata-rata beban selama 5 menit. Tidak boleh melebihi jumlah core CPU pada mesin client. | 0 |
| Memory Usage | Jika rata-rata penggunaan memori dalam 5 menit terakhir melebihi ambang batas ini, worker dianggap sibuk. | 90% |
| Disk Usage | Jika penggunaan disk melebihi ambang batas ini, mesin client dianggap sibuk. | 95% |
| Trigger Busy Machine | Apakah eksekusi job tetap dipicu saat mesin sedang sibuk. | On |
Perluas Advanced Configuration untuk mengakses pengaturan tambahan.
| Field | Description | Default |
|---|---|---|
| Maximum Number Of Jobs | Jumlah maksimum job yang didukung dalam satu grup. | 1000 |
| Automatic Scale-out | Secara otomatis melakukan scale-out resource. Memerlukan pengaturan Global Job Count. | Off |
| Traffic Throttling | Membatasi trafik untuk mencegah overload. Memerlukan pengaturan Task Instance Concurrency. | Off |
| Calendar | Penjadwalan berdasarkan Financial Day (hari perdagangan untuk bisnis finansial) atau Workday (hari kerja standar). | 0 |
1.2 Konfigurasi notifikasi
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.
Tambahkan penerima notifikasi: Tabel berikut menjelaskan setiap bidang kontak:
Contact Group: semua anggota menerima notifikasi. Untuk membuat grup, lihat Buat kontak notifikasi atau grup kontak notifikasi.
Contact: tambahkan penerima individual. Klik Add Contact, lalu klik Go To Create Contact dan isi detail kontak.
Field Description Notification Channel Saluran yang didukung: Text Message, Email, Webhook, dan Phone. Email Alamat email kontak. Webhook URL 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 Number Nomor ponsel kontak. 

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>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:
| Placeholder | Description | Where 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.

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.
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
Jalankan aplikasi Spring Boot Anda.
Masuk ke Konsol MSE SchedulerX.
Di panel navigasi kiri, klik Application Management. Pilih wilayah dan namespace yang benar.
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.

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.
| Property | Description | Default | Since |
|---|---|---|---|
spring.schedulerx2.enabled | Aktifkan atau nonaktifkan starter SchedulerX 2.0. | true | 0.1.7 |
spring.schedulerx2.endpoint | Endpoint regional. Lihat Daftar endpoint. | N/A | 0.1.7 |
spring.schedulerx2.namespace | UID namespace, dari halaman Namespaces. | None | 0.1.7 |
spring.schedulerx2.groupId | Application ID, dari halaman Application Management. | N/A | 0.1.7 |
spring.schedulerx2.appKey | Kunci aplikasi, dari halaman Application Management. | N/A | 1.2.1 |
spring.schedulerx2.host | Alamat IP aktual saat terdapat beberapa IP (VPN, multiple NICs). | N/A | 0.1.7 |
spring.schedulerx2.port | Port kustom untuk listener client. Port acak yang tersedia akan digunakan jika tidak diatur. | None | 0.1.7 |
spring.schedulerx2.blockAppStart | Blokir startup aplikasi jika inisialisasi SchedulerX gagal. | true | 1.1.0 |
spring.schedulerx2.shareContainerPool | Bagikan kolam thread di seluruh eksekusi tugas pada client. | false | 1.2.1.2 |
spring.schedulerx2.sharePoolSize | Ukuran kolam thread saat shareContainerPool diaktifkan. | 64 | 1.2.1.2 |
spring.schedulerx2.label | Tag untuk client. Gunakan bersama manajemen tugas untuk rilis canary atau uji stres. | N/A | 1.2.2.2 |
spring.schedulerx2.enableCgroupMetrics | Kumpulkan metrik menggunakan cgroup. Aktifkan secara manual di lingkungan container Kubernetes. | false | 1.2.2.2 |
spring.schedulerx2.cgroupPathPrefix | Path cgroup di dalam container. | /sys/fs/cgroup/cpu/ | 1.2.2.2 |
spring.schedulerx2.enableHeartbeatLog | Tulis log heartbeat ke ${user.home}/logs/schedulerx/heartbeat.log. | true | 1.2.4 |
spring.schedulerx2.mapMasterStatusCheckInterval | Interval (ms) untuk memeriksa apakah semua sub-tugas telah selesai dalam model Map. Nilai yang lebih rendah meningkatkan frekuensi penjadwalan untuk job dengan granularitas detik. | 3000 | 1.2.5.2 |
spring.schedulerx2.enableSecondDelayCycleIntervalMs | Interpretasikan latensi second_delay dalam milidetik, bukan detik, sehingga meningkatkan frekuensi penjadwalan. | false | 1.2.5.2 |
spring.schedulerx2.broadcastMasterExecEnable | Apakah node primary ikut serta dalam eksekusi tugas broadcast. | true | 1.8.13 |
spring.schedulerx2.broadcastDispatchRetryTimes | Jumlah maksimum percobaan ulang setelah kegagalan dispatch broadcast. Interval percobaan ulang tetap 2 detik. | 3 | 1.8.13 |
spring.schedulerx2.enableSecondDelayStandaloneDispatch | Jalankan pekerjaan mandiri setiap detik. | false | 1.8.13 |
FAQ
Untuk penanganan peringatan, lihat FAQ tentang peringatan.
Untuk masalah integrasi job Spring, lihat Masalah job Spring.
Untuk troubleshooting izin dan konektivitas, lihat FAQ tentang izin dan FAQ tentang koneksi.
Topik terkait
Untuk metode koneksi client lainnya, lihat Cepat menghubungkan client ke SchedulerX.