Topik ini memandu Anda melalui proses pembuatan aplikasi, konfigurasi parameter koneksi, dan validasi klien dalam proyek Spring Boot Anda. Setelah terhubung, aplikasi Anda dapat menggunakan platform SchedulerX untuk pengelolaan pekerjaan yang otomatis dan presisi.
Prasyarat
-
(Opsional) Buat namespace. Jika aplikasi Anda memiliki persyaratan keamanan ketat, Anda dapat membuat namespace untuk mengisolasi resource dan layanan. Untuk informasi selengkapnya, lihat Buat namespace.
-
Anda memiliki proyek Spring Boot yang sudah ada.
Ikhtisar
Menghubungkan aplikasi Spring Boot ke SchedulerX melibatkan langkah-langkah berikut:
-
Buat aplikasi di SchedulerX untuk mendapatkan parameter koneksi dan mengelola pekerjaan secara terpusat.
-
Hubungkan klien ke SchedulerX: Tambahkan parameter yang diperlukan untuk SchedulerxWorker ke file konfigurasi proyek Anda dan buat kelas JobProcessor.
-
Verifikasi hasil: Pastikan bahwa aplikasi Spring Boot Anda berhasil terhubung dan berjalan dengan benar.
Langkah 1: Buat aplikasi
1.1 Pengaturan dasar
Login ke Konsol MSE SchedulerX, lalu pilih wilayah di bilah navigasi atas.
Pada halaman Application Management di panel navigasi kiri, pilih Namespace yang dituju, lalu klik Create Application. Masukkan Application Name dan Application ID, pilih Application Type, konfigurasikan pengaturan lanjutan sesuai kebutuhan, lalu klik Next.
PentingPastikan resource dibuat di wilayah dan namespace yang dipilih serta informasi resource-nya valid.
Configuration item
Description
Default value
Application Name
Kustomisasi nama aplikasi.
None
Application ID
Application ID adalah GroupID untuk akses aplikasi. Nilai ini harus unik dalam namespace yang sama. Jika tidak, pembuatan akan gagal. Nilai ini dapat sama dengan Application Name.
None
Application Type
Regular App: Pilih opsi ini jika aplikasi tidak dideploy di kluster Kubernetes atau tidak memerlukan Kubernetes jobs.
k8s App: Pilih opsi ini jika Anda ingin mendeploy aplikasi di kluster Kubernetes dan memerlukan Kubernetes jobs.
Regular App
Edition
Pilih edisi berdasarkan kebutuhan Anda.
Professional Edition
Simple Log Service
Jika Anda mengaktifkan fitur ini, tambahkan konfigurasi Log4j atau Logback. Dengan demikian, Anda dapat melihat log penjadwalan pekerjaan, termasuk pekerjaan terdistribusi, di Konsol untuk troubleshooting.
Off
load5
Nilai tersebut tidak boleh lebih besar daripada jumlah core CPU yang tersedia pada mesin client.
0
Memory Usage
Jika rata-rata penggunaan memori dalam 5 menit sebelumnya melebihi ambang batas yang ditentukan oleh parameter ini, worker dianggap sibuk.
90%
Disk Usage
Jika penggunaan disk melebihi ambang batas yang ditentukan oleh parameter ini, mesin client dianggap sibuk.
95%
Trigger Busy Machine
Tentukan apakah akan tetap memicu eksekusi Pekerjaan saat mesin sedang sibuk.
On
Advanced Configuration
Maximum Number Of Jobs
Tentukan jumlah maksimum Pekerjaan yang didukung dalam satu kelompok.
1000
Automatic Scale-out
Tentukan apakah akan mengaktifkan Automatic Scale-out. Jika Anda mengaktifkan fitur ini, Anda perlu menetapkan Global Job Count.
Off
Traffic Throttling
Tentukan apakah akan mengaktifkan traffic throttling. Jika Anda mengaktifkan fitur ini, Anda perlu mengatur Task Instance Concurrency.
Off
Calendar
Anda dapat memilih Financial Day atau Workday dari daftar drop-down untuk menjadwalkan aplikasi.
Financial day: hari perdagangan untuk bisnis keuangan.
Workday: hari kerja normal bagi masyarakat, organisasi, atau individu.
0
1.2 Pengaturan notifikasi
Pada halaman wizard Notification Configuration, masukkan informasi yang relevan, pilih Notification Channel, dan atur Contacts.
Notification Channel mendukung Text Message, Email, Webhook, dan Phone.
Untuk informasi selengkapnya mengenai konfigurasi Webhook, lihat Webhook configuration description.
Notification Contacts mendukung dua metode: kelompok kontak dan kontak.
Contact Group
Semua kontak dalam kelompok kontak dapat menerima notifikasi. Untuk informasi selengkapnya tentang cara membuat kelompok kontak, lihat Create a notification contact or notification contact group.
Contact
Kontak yang ditambahkan dapat menerima notifikasi. Anda dapat menambahkan beberapa kontak sekaligus. Setelah Anda mengklik Add Contact, klik Go To Create Contact.

Pada kotak dialog yang muncul, klik Create Contact, lalu masukkan informasi kontak.

Configuration item
Description
Notification Channel
Saluran notifikasi berikut didukung: Text Message, Email, Webhook, dan Phone.
Email
Masukkan alamat email kontak.
Webhook
Masukkan URL webhook yang ingin Anda gunakan. WeCom, Lark, dan DingTalk didukung. Anda juga dapat menentukan beberapa robot webhook sekaligus. Pisahkan beberapa tautan robot dengan koma (,).
Anda perlu menambahkan kata kunci "SchedulerX" (case-sensitive) ke robot DingTalk. Jika tidak, Anda tidak akan menerima informasi peringatan.
Untuk informasi selengkapnya tentang cara memperoleh URL webhook, lihat DingTalk Developer Documentation, WeCom Developer Documentation, dan Lark Developer Documentation.
Mobile Phone Number
Masukkan nomor ponsel kontak.
Verifikasi
Muat ulang halaman dan pilih Wilayah serta namespace yang ditentukan. Kemudian, lihat informasi aplikasi yang telah dibuat.
Langkah 2: Hubungkan client ke SchedulerX
-
Tambahkan dependensi ke pom.xml
Tambahkan dependensi schedulerx2-spring-boot-starter ke file pom.xml proyek Anda untuk menggunakan fitur SchedulerX.
CatatanSchedulerX mendukung koneksi dari Spring Boot 2.x dan 3.x.
<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx2-spring-boot-starter</artifactId> <version>${schedulerx2.version}</version> <!-- Jika Anda menggunakan logback, exclude log4j dan log4j2 --> <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>PentingGanti <version>${schedulerx2.version}</version> dengan versi client terbaru. Contohnya: <version>1.11.5</version>. Untuk informasi lebih lanjut, lihat Catatan rilis client.
-
Konfigurasikan parameter
Pada file
application.propertiesaplikasi Spring Boot Anda, tambahkan parameter yang diperlukan untuk menghubungkan SchedulerxWorker ke aplikasi SchedulerX Anda.spring.schedulerx2.endpoint=${endpoint} spring.schedulerx2.namespace=${namespace} spring.schedulerx2.groupId=${groupId} # Hanya versi 1.2.1 ke atas yang mendukung konfigurasi appKey. spring.schedulerx2.appKey=${appKey} # Jika Anda tidak menggunakan appKey, Anda dapat menggunakan ID AccessKey dan Rahasia AccessKey Alibaba Cloud, atau token STS. #spring.schedulerx2.aliyunAccessKey=${aliyunAccessKey} #spring.schedulerx2.aliyunSecretKey=${aliyunSecretKey} #spring.schedulerx2.stsToken=${aliyunStsToken}Sumber parameter:
Di Konsol MSE SchedulerX, buka halaman Application Management di panel navigasi kiri. Pada kolom Actions untuk aplikasi target Anda, klik Access Configuration dan pilih Spring Boot sebagai tipe layanan. Di kotak dialog yang muncul, Anda dapat melihat contoh nilai untuk parameter seperti
endpoint,namespace,groupId, danappKey. Salin nilai-nilai tersebut ke lokasi yang sesuai dalam file konfigurasi Anda.PentingPastikan
regionSchedulerX sesuai denganregionclientuntuk menghindari kegagalan koneksi.Jika Anda menggunakan server non-Alibaba Cloud atau lingkungan lokal, pastikan Anda telah mengaktifkan akses jaringan publik dan membuat aplikasi Anda di
regionpublik pada platform penjadwalan. Untuk detail lebih lanjut, lihat Menghubungkan ke lingkungan publik secara lokal.CatatanJika aplikasi
clientAnda mencakup beberapa layanan atau memerlukan pengelolaan izin untuk mengisolasi pekerjaan terjadwal, Anda dapat membuat beberapa aplikasi di Konsol untuk pengelolaan pekerjaan detail halus. Misalnya, jika aplikasiclientbernamaanimalsmemiliki dua aplikasi,animals.dogdananimals.cat, yang dibuat di Konsol, Anda tidak perlu meminta instans terpisah untuk masing-masing. Sebagai gantinya, Anda dapat mengonfigurasinya dalam file application.properties dengan menentukan beberapa ID aplikasi dalam parameterspring.schedulerx2.groupId=${groupId}, dipisahkan koma, seperti:spring.schedulerx2.groupId=animals.dog,animals.cat.Deskripsi parameter:
-
endpoint: Saat menginisialisasi SchedulerxWorker, gunakanregiondan titik akhir yang sesuai tempat aplikasi Anda dideploy. Untuk informasi lebih lanjut, lihat Endpoints. -
namespace: IDnamespace. Anda dapat menemukannya di halaman Namespaces di Konsol. -
groupIddanappKey:groupIdadalah ID aplikasi, danappKeyadalah kunci aplikasi. Anda dapat menemukannya di halaman Application Management di Konsol. -
aliyunAccessKeydanaliyunSecretKey:aliyunAccessKeyadalahAccessKey IDAkun Alibaba Cloud Anda, danaliyunSecretKeyadalahAccessKey secret. Anda dapat memperolehnya dari halaman Security Management di Konsol Manajemen Informasi Pengguna. -
Untuk parameter tambahan, lihat tabel berikut:
Key
Description
Value
Supported from version
spring.schedulerx2.enabled
Mengaktifkan starter SchedulerX 2.0. Default:
true.true
false
0.1.7
spring.schedulerx2.endpoint
Menetapkan endpoint untuk region. Untuk informasi lebih lanjut, lihat Endpoints.
None
0.1.7
spring.schedulerx2.namespace
Menetapkan UID namespace. Anda dapat menemukannya di halaman Namespaces di Konsol.
None
0.1.7
spring.schedulerx2.groupId
groupId. Anda dapat menemukannya di halaman Application Management di Konsol.None
0.1.7
spring.schedulerx2.appKey
appKey. Anda dapat menemukannya di halaman Application Management di Konsol.None
1.2.1
spring.schedulerx2.host
Jika Anda memiliki beberapa alamat IP (misalnya, dari VPN atau beberapa kartu jaringan), Anda dapat menentukan alamat IP yang akan digunakan.
None
0.1.7
spring.schedulerx2.port
Port kustom untuk client mendengarkan. Jika tidak ditetapkan, port acak yang tersedia akan dipilih.
None
0.1.7
spring.schedulerx2.blockAppStart
Jika
true, menghentikan startup aplikasi jika inisialisasi SchedulerX gagal. Default:true.true
false
1.1.0
spring.schedulerx2.shareContainerPool
Jika
true, semua eksekusi pekerjaan di client berbagi satu kolam thread. Default:false.true
false
1.2.1.2
spring.schedulerx2.sharePoolSize
Menetapkan ukuran kolam thread bersama saat
spring.schedulerx2.shareContainerPoolbernilaitrue. Default: 64.None
1.2.1.2
spring.schedulerx2.label
Anda dapat menetapkan label pada client yang berbeda dan menentukan label untuk eksekusi pekerjaan dalam manajemen pekerjaan. Ini berguna untuk skenario seperti rilis canary dan uji stres.
None
1.2.2.2
spring.schedulerx2.enableCgroupMetrics
Menentukan apakah akan menggunakan cgroups untuk mengumpulkan metrik instans client. Ini harus diaktifkan secara manual di lingkungan kontainer (K8s). Default-nya adalah
false.true
false
1.2.2.2
spring.schedulerx2.cgroupPathPrefix
Jalur cgroup di dalam kontainer.
Jalur default adalah /sys/fs/cgroup/cpu/. Jika jalur ini ada, Anda tidak perlu menyetel parameter ini.
1.2.2.2
spring.schedulerx2.enableHeartbeatLog
Menentukan apakah akan mencetak
heartbeat logke ${user.home}/logs/schedulerx/heartbeat.log.Default-nya adalah
true.true
false
1.2.4
spring.schedulerx2.mapMasterStatusCheckInterval
Interval, dalam milidetik, di mana pekerjaan Map memeriksa penyelesaian sub-pekerjaan. Nilai yang lebih rendah dapat mempercepat penjadwalan untuk pekerjaan tingkat detik.
3000
1.2.5.2
spring.schedulerx2.enableSecondDelayCycleIntervalMs
Jika
true, nilaisecond_delaydari Konsol diperlakukan sebagai milidetik, bukan detik, sehingga memungkinkan penjadwalan lebih cepat. Default:false.true
false
1.2.5.2
spring.schedulerx2.broadcastMasterExecEnable
Menentukan apakah node master berpartisipasi dalam eksekusi
broadcast job. Default-nya adalahtrue.true
false
1.8.13
spring.schedulerx2.broadcastDispatchRetryTimes
Jumlah upaya percobaan ulang untuk pengiriman broadcast yang gagal. Interval percobaan ulang tetap 2 detik dan tidak dapat dikonfigurasi.
3
1.8.13
spring.schedulerx2.enableSecondDelayStandaloneDispatch
Menentukan apakah akan mengaktifkan dispatch dan eksekusi tingkat kedua untuk pekerjaan mandiri. Nilai default-nya adalah
false.true
false
1.8.13
-
-
Buat kelas job processor
Buat kelas JobProcessor di aplikasi Spring Boot Anda untuk menangani logika pekerjaan.
Contoh berikut menunjukkan cara membuat kelas JobProcessor sederhana yang mencetak pesan secara berkala (contoh nama package:
com.example.schedulerx.job).package com.example.schedulerx.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); } }
Langkah 3: Verifikasi hasilnya
Masuk ke konsol MSE SchedulerX. Di bilah navigasi kiri, klik Application Management dan periksa Total Instances dari aplikasi target.

Jika Total Instances bernilai 0, aplikasi gagal terhubung. Periksa dan perbaiki aplikasi lokal Anda.
Jika Total Instances tidak bernilai 0 dan menampilkan jumlah instans yang terhubung, aplikasi telah berhasil terhubung.
Langkah selanjutnya
Setelah aplikasi terhubung ke SchedulerX, Anda dapat membuat scheduling task di Distributed Task Scheduling Platform. Untuk informasi selengkapnya, lihat Create a scheduling task.
FAQ
-
Untuk informasi mengenai penanganan alert di SchedulerX, lihat Alerts FAQ.
-
Untuk masalah umum terkait koneksi pekerjaan Spring ke SchedulerX, lihat Spring job issues.
-
Untuk masalah izin dan koneksi di SchedulerX, lihat Permission issues dan Connection issues.
Dokumentasi terkait
Untuk mempelajari metode koneksi client lainnya, lihat Quickly connect a client to SchedulerX.