SchedulerX adalah layanan penjadwalan pekerjaan terdistribusi dalam 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 aplikasi terhubung, Anda dapat mendefinisikan, menjadwalkan, dan memantau pekerjaan melalui Konsol SchedulerX.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Proyek Spring Boot 2.x atau 3.x
(Opsional) namespace untuk isolasi resource — lihat bagian "Buat namespace" pada Pengelolaan namespace
Langkah 1: Buat aplikasi SchedulerX
Konfigurasikan pengaturan dasar
Masuk ke Konsol MSE SchedulerX dan pilih wilayah di bilah navigasi atas.
Di panel navigasi kiri, klik Application Management. Pilih Namespace, lalu klik Create Application.
Masukkan pengaturan berikut dan klik Next.
PentingBuat resource di wilayah dan namespace yang benar. Pastikan informasi resource valid.
Setting
Description
Default
Application Name
Nama deskriptif untuk aplikasi.
None
Application ID
GroupID untuk akses agent. Harus unik dalam namespace. Dapat sama dengan Application Name.
None
Application Type
Regular App — tidak dideploy di Kubernetes atau tidak memerlukan pekerjaan Kubernetes. k8s App — dideploy di Kubernetes dan memerlukan pekerjaan Kubernetes.
Regular App
Edition
Pilih edisi sesuai kebutuhan Anda.
Professional Edition
Simple Log Service
Aktifkan untuk melihat log penjadwalan di konsol. Memerlukan konfigurasi Log4j atau Logback.
Off
load5
Rata-rata beban maksimum selama 5 menit. Tidak boleh melebihi jumlah core CPU pada mesin klien.
0
Memory Usage
Jika rata-rata penggunaan memori dalam 5 menit terakhir melebihi ambang batas ini, worker ditandai sebagai sibuk.
90%
Disk Usage
Jika penggunaan disk melebihi ambang batas ini, mesin klien ditandai sebagai sibuk.
95%
Trigger Busy Machine
Lanjutkan memicu pekerjaan saat mesin sedang sibuk.
On
Setting
Description
Default
Maximum Number Of Jobs
Jumlah maksimum pekerjaan yang didukung dalam satu kelompok.
1000
Automatic Scale-out
Aktifkan untuk penskalaan otomatis. Memerlukan Global Job Count.
Off
Traffic Throttling
Aktifkan untuk pengendalian aliran trafik. Memerlukan Task Instance Concurrency.
Off
Calendar
Jadwalkan menggunakan Financial Day (hari perdagangan) atau Workday (hari kerja).
0

Konfigurasikan notifikasi
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.
Setting
Description
Notification Channel
Text Message, Email, Webhook, atau Phone.
Email
Alamat email kontak.
Webhook
URL 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 Number
Nomor telepon kontak.

Muat ulang 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>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 pada versi 1.2.1 dan 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:
Masuk ke Konsol SchedulerX. Di panel navigasi kiri, klik Applications. Temukan aplikasi yang ingin Anda kelola dan klik AccessConfig di kolom Operation. Di panel AccessConfig, pilih Spring Boot dari dropdown.

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.

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.
SchedulerX dan agent harus berada di wilayah yang sama. Ketidaksesuaian wilayah menyebabkan kegagalan koneksi. Jika aplikasi berjalan di luar Alibaba Cloud (on-premises atau penyedia cloud lain), aktifkan akses Internet dan buat aplikasi SchedulerX di wilayah Internet. Lihat Menghubungkan 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}Untuk mengelola beberapa aplikasi dari satu klien, 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:
Parameter | Description | Default | Since |
| Aktifkan atau nonaktifkan starter SchedulerX. |
| 0.1.7 |
| Tentukan alamat IP ketika mesin memiliki beberapa NIC atau menggunakan VPN. | Auto-detected | 0.1.7 |
| Port tempat agent mendengarkan. | Random available port | 0.1.7 |
| Blokir startup aplikasi jika SchedulerX gagal diinisialisasi. |
| 1.1.0 |
| Izinkan semua pekerjaan pada agent berbagi satu kolam thread. |
| 1.2.1.2 |
| Ukuran kolam thread saat berbagi diaktifkan. |
| 1.2.1.2 |
| Label untuk menargetkan worker tertentu selama rilis canary atau uji stres. | None | 1.2.2.2 |
| Gunakan cgroup untuk mengumpulkan metrik agent. Aktifkan secara manual di lingkungan Kubernetes. |
| 1.2.2.2 |
| Jalur cgroup dalam container. |
| 1.2.2.2 |
| Catat data heartbeat ke |
| 1.2.4 |
| Interval (ms) untuk memeriksa penyelesaian tugas dalam model Map. Nilai yang lebih rendah meningkatkan frekuensi penjadwalan untuk pekerjaan granularitas detik. |
| 1.2.5.2 |
| Interpretasikan interval pekerjaan granularitas detik dalam milidetik, bukan detik. |
| 1.2.5.2 |
| Wajibkan node primary menjalankan pekerjaan broadcast. |
| 1.8.13 |
| Jumlah maksimum percobaan ulang setelah pengiriman broadcast gagal. Interval percobaan ulang tetap 2 detik. |
| 1.8.13 |
| Aktifkan pengiriman pekerjaan standalone granularitas detik. |
| 1.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 menandakan sukses
}
}@Componentmendaftarkan kelas sebagai bean Spring sehingga SchedulerX dapat menemukannya.Perluas
JavaProcessordan override metodeprocessuntuk mendefinisikan logika pekerjaan.Kembalikan
new ProcessResult(true)untuk menandakan sukses ataunew ProcessResult(false)untuk menandakan kegagalan.
Langkah 5: Verifikasi koneksi
Jalankan aplikasi Spring Boot Anda.
Masuk ke Konsol MSE SchedulerX. Di panel navigasi kiri, klik Applications.
Temukan aplikasi Anda dan klik View instances di kolom Operation.

Periksa kolom Total number of instances:
0: Koneksi gagal. Periksa parameter konfigurasi Anda (wilayah, endpoint, namespace, dan GroupID) serta verifikasi konektivitas jaringan.
Lebih besar dari 0: Koneksi berhasil.
Langkah selanjutnya
Setelah koneksi diverifikasi, buat pekerjaan di Konsol SchedulerX untuk memicu processor pekerjaan Anda. Lihat bagian "Buat pekerjaan" pada Pengelolaan pekerjaan.
Pemecahan masalah
Symptom | Possible cause | Solution |
Agent gagal terhubung (0 instans) | Ketidaksesuaian wilayah antara SchedulerX dan agent | Pastikan keduanya menggunakan wilayah yang sama. Periksa nilai |
Agent gagal terhubung (0 instans) | Aplikasi berjalan di luar Alibaba Cloud tanpa endpoint Internet | Aktifkan akses Internet dan buat aplikasi SchedulerX di wilayah Internet. Lihat Menghubungkan melalui Internet. |
Agent gagal terhubung (0 instans) | GroupID atau AppKey salah | Buka Applications > AccessConfig di konsol dan konfirmasi nilainya. |
Startup aplikasi diblokir | SchedulerX gagal diinisialisasi dengan | Atur |
Lihat juga
Menghubungkan agent ke SchedulerX — metode koneksi lain (non-Spring Boot)