All Products
Search
Document Center

Microservices Engine:Hubungkan aplikasi Spring Boot ke SchedulerX

Last Updated:Jun 21, 2026

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:

  1. Buat aplikasi di SchedulerX untuk mendapatkan parameter koneksi dan mengelola pekerjaan secara terpusat.

  2. Hubungkan klien ke SchedulerX: Tambahkan parameter yang diperlukan untuk SchedulerxWorker ke file konfigurasi proyek Anda dan buat kelas JobProcessor.

  3. Verifikasi hasil: Pastikan bahwa aplikasi Spring Boot Anda berhasil terhubung dan berjalan dengan benar.

Langkah 1: Buat aplikasi

1.1 Pengaturan dasar

  1. Login ke Konsol MSE SchedulerX, lalu pilih wilayah di bilah navigasi atas.

  2. 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.

    image

    Penting

    Pastikan 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

  1. 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

        1. Kontak yang ditambahkan dapat menerima notifikasi. Anda dapat menambahkan beberapa kontak sekaligus. Setelah Anda mengklik Add Contact, klik Go To Create Contact.

        image

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

        image

        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.

  2. Verifikasi

    Muat ulang halaman dan pilih Wilayah serta namespace yang ditentukan. Kemudian, lihat informasi aplikasi yang telah dibuat.

Langkah 2: Hubungkan client ke SchedulerX

  1. Tambahkan dependensi ke pom.xml

    Tambahkan dependensi schedulerx2-spring-boot-starter ke file pom.xml proyek Anda untuk menggunakan fitur SchedulerX.

    Catatan

    SchedulerX 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>                   
    Penting

    Ganti <version>${schedulerx2.version}</version> dengan versi client terbaru. Contohnya: <version>1.11.5</version>. Untuk informasi lebih lanjut, lihat Catatan rilis client.

  2. Konfigurasikan parameter

    Pada file application.properties aplikasi 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, dan appKey. Salin nilai-nilai tersebut ke lokasi yang sesuai dalam file konfigurasi Anda.

    Penting

    Pastikan region SchedulerX sesuai dengan region client untuk 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 region publik pada platform penjadwalan. Untuk detail lebih lanjut, lihat Menghubungkan ke lingkungan publik secara lokal.

    Catatan

    Jika aplikasi client Anda 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 aplikasi client bernama animals memiliki dua aplikasi, animals.dog dan animals.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 parameter spring.schedulerx2.groupId=${groupId}, dipisahkan koma, seperti: spring.schedulerx2.groupId=animals.dog,animals.cat.

    Deskripsi parameter:

    • endpoint: Saat menginisialisasi SchedulerxWorker, gunakan region dan titik akhir yang sesuai tempat aplikasi Anda dideploy. Untuk informasi lebih lanjut, lihat Endpoints.

    • namespace: ID namespace. Anda dapat menemukannya di halaman Namespaces di Konsol.

    • groupId dan appKey: groupId adalah ID aplikasi, dan appKey adalah kunci aplikasi. Anda dapat menemukannya di halaman Application Management di Konsol.

    • aliyunAccessKey dan aliyunSecretKey: aliyunAccessKey adalah AccessKey ID Akun Alibaba Cloud Anda, dan aliyunSecretKey adalah AccessKey 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.shareContainerPool bernilai true. 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 log ke ${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, nilai second_delay dari 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 adalah true.

      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

  3. 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.

image

Catatan
  • 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

Dokumentasi terkait

Untuk mempelajari metode koneksi client lainnya, lihat Quickly connect a client to SchedulerX.