Topik ini menjelaskan cara menghubungkan aplikasi Spring Boot ke SchedulerX, termasuk membuat aplikasi SchedulerX, mengonfigurasi parameter koneksi yang diperlukan, mengonfigurasi agen dalam proyek Spring Boot, serta memverifikasi koneksi. Hal ini memastikan bahwa aplikasi Spring Boot Anda berjalan sesuai harapan di SchedulerX dengan penjadwalan otomatis dan manajemen pekerjaan yang presisi.
Prasyarat
Opsional. Namespace telah dibuat. Jika aplikasi Spring Boot Anda memerlukan keamanan tinggi, Anda dapat membuat namespace untuk mengisolasi sumber daya dan layanan aplikasi dari aplikasi lain. Untuk informasi selengkapnya, lihat bagian "Buat namespace" pada topik Manajemen namespace.
Proyek Spring Boot telah dibuat.
Ikhtisar
Untuk menghubungkan aplikasi Spring Boot ke SchedulerX, lakukan langkah-langkah berikut:
Buat aplikasi SchedulerX: Buat aplikasi di SchedulerX, peroleh parameter untuk menghubungkan ke SchedulerX, dan terapkan manajemen serta konfigurasi pekerjaan terpusat.
Hubungkan aplikasi Spring Boot Anda ke SchedulerX menggunakan agen: Dalam file .properties atau .yml proyek Spring Boot Anda, konfigurasikan parameter yang diperlukan oleh SchedulerxWorker dan buat kelas JobProcessor untuk menghubungkan aplikasi Spring Boot ke aplikasi SchedulerX tertentu.
Verifikasi hasilnya: Pastikan aplikasi Spring Boot terhubung ke SchedulerX dan berjalan sesuai harapan.
Langkah 1: Buat aplikasi SchedulerX
1.1 Konfigurasi dasar
Masuk ke Konsol MSE SchedulerX, lalu pilih wilayah di bilah navigasi atas.
Pada halaman Application Management di bilah 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 sumber daya dibuat di wilayah dan namespace yang dipilih serta informasi sumber dayanya valid.
Item konfigurasi
Deskripsi
Nilai default
Application Name
Sesuaikan nama aplikasi.
Tidak ada
Application ID
Application ID adalah GroupID untuk akses aplikasi. Nilainya harus unik dalam namespace yang sama. Jika tidak, pembuatan akan gagal. Nilainya dapat sama dengan Application Name.
Tidak ada
Application Type
Regular App: Pilih opsi ini jika aplikasi tidak diterapkan di kluster Kubernetes atau tidak memerlukan pekerjaan Kubernetes.
k8s App: Pilih opsi ini jika Anda ingin menerapkan aplikasi di kluster Kubernetes dan memerlukan pekerjaan Kubernetes.
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 pemecahan masalah.
Nonaktif
load5
Nilainya tidak boleh lebih besar daripada jumlah core CPU yang tersedia di mesin klien.
0
Memory Usage
Jika penggunaan memori rata-rata dalam 5 menit terakhir 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 klien dianggap sibuk.
95%
Trigger Busy Machine
Tentukan apakah akan melanjutkan pemicuan eksekusi pekerjaan saat mesin sedang sibuk.
Aktif
Advanced Configuration
Maximum Number Of Jobs
Tentukan jumlah maksimum pekerjaan yang didukung dalam satu grup.
1000
Automatic Scale-out
Tentukan apakah akan mengaktifkan skala keluar otomatis. Jika Anda mengaktifkan fitur ini, Anda perlu mengatur Global Job Count.
Nonaktif
Traffic Throttling
Tentukan apakah akan mengaktifkan pembatasan trafik. Jika Anda mengaktifkan fitur ini, Anda perlu mengatur Task Instance Concurrency.
Nonaktif
Calendar
Anda dapat memilih Financial Day atau Workday dari daftar tarik-turun untuk menjadwalkan aplikasi.
Hari keuangan: hari perdagangan untuk bisnis keuangan.
Hari kerja: hari kerja atau operasional normal bagi masyarakat, organisasi, atau individu.
0
1.2 Konfigurasi 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 tentang konfigurasi Webhook, lihat Deskripsi konfigurasi Webhook.
Notification Contacts mendukung dua metode: grup kontak dan kontak.
Grup Kontak
Semua kontak dalam grup kontak dapat menerima notifikasi. Untuk informasi selengkapnya tentang cara membuat grup kontak, lihat Buat kontak notifikasi atau grup kontak notifikasi.
Kontak
Kontak yang ditambahkan dapat menerima notifikasi. Anda dapat menambahkan beberapa kontak sekaligus. Setelah Anda Add Contact, klik Go To Create Contact.

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

Item konfigurasi
Deskripsi
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" (peka huruf besar/kecil) ke robot DingTalk. Jika tidak, Anda tidak dapat menerima informasi peringatan.
Untuk informasi selengkapnya tentang cara mendapatkan URL webhook, lihat Dokumentasi Pengembang DingTalk, Dokumentasi Pengembang WeCom, dan Dokumentasi Pengembang Lark.
Mobile Phone Number
Masukkan nomor ponsel kontak.
Verifikasi
Muat ulang halaman dan pilih wilayah serta namespace yang ditentukan. Kemudian, lihat informasi tentang aplikasi yang telah dibuat.
Langkah 2: Hubungkan aplikasi Spring Boot ke SchedulerX menggunakan agen
Tambahkan dependensi yang diperlukan ke file pom.xml.
Tambahkan dependensi SchedulerxWorker yang diperlukan ke file pom.xml aplikasi Spring Boot Anda agar aplikasi Spring Boot dapat menggunakan fitur-fitur yang disediakan oleh SchedulerX.
CatatanSchedulerX mendukung aplikasi Spring Boot 2.x dan 3.x.
<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx2-spring-boot-starter</artifactId> <version>${schedulerx2.version}</version> <!-- If you use Logback, you must exclude Log4j and Log4j 2. --> <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 agen terbaru. Contoh: <version>1.11.5</version>. Untuk informasi selengkapnya, lihat Catatan rilis agen.
Konfigurasikan parameter.
Dalam file konfigurasi application.properties aplikasi Spring Boot, tambahkan parameter yang diperlukan oleh SchedulerxWorker, seperti informasi koneksi dan autentikasi. Parameter tersebut diperlukan agar aplikasi Spring Boot dapat terhubung ke aplikasi SchedulerX.
spring.schedulerx2.endpoint=${endpoint} spring.schedulerx2.namespace=${namespace} spring.schedulerx2.groupId=${groupId} # The appKey parameter is supported only in versions 1.2.1 and later. spring.schedulerx2.appKey=${appKey} # If you do not use an appKey, you can use an Alibaba Cloud AccessKey and SecretKey, or an STS token. #spring.schedulerx2.aliyunAccessKey=${aliyunAccessKey} #spring.schedulerx2.aliyunSecretKey=${aliyunSecretKey} #spring.schedulerx2.stsToken=${aliyunStsToken}Sumber parameter:
Masuk ke Konsol SchedulerX. Di panel navigasi kiri, klik Applications. Pada halaman Applications, temukan aplikasi yang ingin Anda kelola lalu klik AccessConfig di kolom Operasi. Di panel AccessConfig, pilih Spring Boot dari daftar tarik-turun.
PentingPeriksa apakah SchedulerX dan agen berada di wilayah yang sama. Jika tidak, agen gagal terhubung ke SchedulerX.
Jika aplikasi Spring Boot Anda berjalan di server non-Alibaba Cloud atau di lingkungan lokal, pastikan Anda telah mengaktifkan akses Internet ke aplikasi Spring Boot dan membuat aplikasi SchedulerX di wilayah Internet. Untuk informasi selengkapnya, lihat Menghubungkan ke SchedulerX melalui Internet dari lingkungan lokal.
CatatanJika aplikasi klien Anda berisi beberapa layanan atau Anda perlu mengisolasi tugas terjadwal untuk pengelolaan izin, Anda dapat membuat beberapa aplikasi di konsol untuk mencapai manajemen detail halus. Misalnya, untuk aplikasi klien bernama
animals, Anda dapat membuat dua aplikasi di konsol: animals.dog dan animals.cat. Anda tidak perlu meminta worker terpisah untuk kedua aplikasi ini. Anda hanya perlu mengonfigurasispring.schedulerx2.groupId=${groupId}dalam file konfigurasi application.properties dan mencantumkan nama aplikasi yang dipisahkan dengan koma. Contohnya:spring.schedulerx2.groupId=animals.dog,animals.cat.Deskripsi parameter:
endpoint: titik akhir SchedulerxWorker. Nilai parameter ini harus sesuai dengan titik akhir wilayah tempat aplikasi Anda diterapkan. Untuk informasi selengkapnya, lihat Titik Akhir.
namespace: ID namespace tempat aplikasi berada. Anda dapat melihat ID namespace di halaman Namespaces di konsol SchedulerX.

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

aliyunAccessKey dan aliyunSecretKey: ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud Anda. Anda dapat melihat pasangan Kunci Akses di halaman Security Management di konsol User Management.
Tabel berikut menjelaskan parameter yang dapat Anda konfigurasi sesuai kebutuhan.
kunci
Deskripsi
Nilai
Versi awal
spring.schedulerx2.enabled
Menentukan apakah starter SchedulerX 2.0 diaktifkan. Nilai default: true. Anda tidak perlu mengonfigurasi parameter ini.
true
false
0.1.7
spring.schedulerx2.endpoint
Titik akhir wilayah yang ditentukan. Untuk informasi selengkapnya, lihat Titik Akhir.
T/A
0.1.7
spring.schedulerx2.namespace
UID namespace. Anda dapat melihat UID namespace di halaman Namespaces di konsol SchedulerX.
T/A
0.1.7
spring.schedulerx2.groupId
ID aplikasi. Anda dapat melihat ID aplikasi di halaman Applications di konsol SchedulerX.
T/A
0.1.7
spring.schedulerx2.appKey
Kunci aplikasi. Anda dapat melihat kunci aplikasi di halaman Applications di konsol SchedulerX.
T/A
1.2.1
spring.schedulerx2.host
Alamat IP aktual jika terdapat beberapa alamat IP. Beberapa alamat IP mungkin ada jika agen menggunakan VPN atau beberapa network interface card (NIC).
T/A
0.1.7
spring.schedulerx2.port
Port tempat agen mendengarkan. Jika Anda tidak menentukan port, sistem akan memilih port yang tersedia secara acak.
T/A
0.1.7
spring.schedulerx2.blockAppStart
Menentukan apakah akan memblokir startup aplikasi jika SchedulerX gagal menyelesaikan inisialisasi. Nilai default: true.
true
false
1.1.0
spring.schedulerx2.shareContainerPool
Menentukan apakah semua pekerjaan pada agen diizinkan berbagi kolam thread. Nilai default: false.
true
false
1.2.1.2
spring.schedulerx2.sharePoolSize
Ukuran kolam thread jika Anda mengizinkan semua pekerjaan berbagi kolam. Nilai default: 64.
T/A
1.2.1.2
spring.schedulerx2.label
Label. Anda dapat menambahkan label ke agen sehingga Anda dapat menggunakan label untuk menentukan worker untuk manajemen pekerjaan. Fitur ini cocok untuk skenario rilis canary dan uji stres.
T/A
1.2.2.2
spring.schedulerx2.enableCgroupMetrics
Menentukan apakah akan menggunakan cgroup untuk mengumpulkan metrik agen. Nilai default: false. Anda harus mengaktifkan fitur ini secara manual di lingkungan Kubernetes.
true
false
1.2.2.2
spring.schedulerx2.cgroupPathPrefix
Jalur cgroup di dalam kontainer.
Jalur default adalah /sys/fs/cgroup/cpu/. Jika jalur sudah ada, Anda tidak perlu mengonfigurasi parameter ini.
1.2.2.2
spring.schedulerx2.enableHeartbeatLog
Menentukan apakah akan menampilkan log heartbeat di file ${user.home}/logs/schedulerx/heartbeat.log.
Nilai default: true.
true
false
1.2.4
spring.schedulerx2.mapMasterStatusCheckInterval
Interval SchedulerX memeriksa apakah semua tugas telah selesai dalam model Map. Satuan: milidetik. Jika Anda ingin meningkatkan frekuensi penjadwalan pekerjaan dengan granularitas detik, konfigurasikan parameter ini.
3000
1.2.5.2
spring.schedulerx2.enableSecondDelayCycleIntervalMs
Menentukan apakah akan mengaktifkan presisi milidetik untuk pekerjaan dengan granularitas detik. Nilai default: false. Jika Anda mengatur parameter ini ke true, interval penjadwalan yang ditentukan di konsol untuk pekerjaan dengan granularitas detik akan diinterpretasikan dalam milidetik, bukan detik. Hal ini meningkatkan frekuensi penjadwalan pekerjaan Anda.
true
false
1.2.5.2
spring.schedulerx2.broadcastMasterExecEnable
Menentukan apakah node utama diperlukan untuk menjalankan pekerjaan broadcast. Nilai default: true.
true
false
1.8.13
spring.schedulerx2.broadcastDispatchRetryTimes
Jumlah maksimum percobaan ulang setelah broadcast gagal. Secara default, tidak ada percobaan ulang. Interval percobaan ulang tetap 2 detik.
3
1.8.13
spring.schedulerx2.enableSecondDelayStandaloneDispatch
Menentukan apakah akan mengaktifkan pengiriman pekerjaan standalone dengan granularitas detik. Nilai default: false.
true
false
1.8.13
Buat kelas JobProcessor
Buat kelas JobProcessor dalam aplikasi Spring Boot untuk mengaktifkan penjadwalan pekerjaan.
Kode contoh berikut menunjukkan cara menjadwalkan kelas JobProcessor sederhana untuk menampilkan pesan secara berkala. Dalam contoh ini, pesan
hello schedulerx2.0ditampilkan.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; @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 hasil
Masuk ke konsol Microservices Engine (MSE). Di panel navigasi kiri, pilih Task Scheduling > SchedulerX Version. Di halaman SchedulerX Version, klik Applications di panel kiri. Kemudian, temukan aplikasi yang ingin Anda kelola lalu klik View instances di kolom Operasi.

Jika kolom Total number of instances menampilkan 0, aplikasi gagal terhubung ke SchedulerX. Periksa dan modifikasi aplikasi lokal Anda.
Jika kolom Total number of instances menampilkan bilangan bulat selain 0, aplikasi berhasil terhubung ke SchedulerX.
Langkah selanjutnya
Setelah aplikasi Spring Boot terhubung ke SchedulerX, Anda dapat membuat pekerjaan di konsol SchedulerX. Untuk informasi selengkapnya, lihat bagian "Buat pekerjaan" pada topik Manajemen pekerjaan.
FAQ
Untuk informasi selengkapnya tentang cara menangani peringatan saat menggunakan SchedulerX, lihat FAQ tentang peringatan.
Untuk informasi selengkapnya tentang cara menghubungkan pekerjaan Spring ke SchedulerX, lihat FAQ tentang pekerjaan Spring.
Untuk informasi selengkapnya tentang masalah izin dan koneksi SchedulerX, lihat FAQ tentang izin dan FAQ tentang koneksi.
Referensi
Untuk informasi selengkapnya tentang metode lain untuk menghubungkan aplikasi ke SchedulerX menggunakan agen, lihat Menghubungkan agen ke SchedulerX.