All Products
Search
Document Center

Enterprise Distributed Application Service:Menerapkan penjadwalan pekerjaan

Last Updated:Mar 12, 2026

SchedulerX memungkinkan Anda menjalankan pekerjaan terjadwal dalam aplikasi Spring Cloud yang diterapkan ke Enterprise Distributed Application Service (EDAS). Panduan ini akan memandu Anda membuat pekerjaan Simple Job Single-instance Edition, mengujinya secara lokal, dan menerapkannya ke EDAS.

SchedulerX adalah platform penjadwalan pekerjaan terdistribusi Alibaba Cloud yang menyediakan:

  • Presisi sub-menit: Jadwalkan pekerjaan dengan granularitas tingkat detik menggunakan ekspresi cron.

  • Ketersediaan tinggi: Dilengkapi failover bawaan dan eksekusi yang andal.

  • Model eksekusi terdistribusi: Jalankan beban kerja paralel dengan model seperti MapReduce.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Akun Alibaba Cloud dengan EDAS yang telah diaktifkan.

  • Akses ke EDAS console.

Langkah 1: Buat proyek Maven

Buat proyek Maven bernama scx-example.

Tambahkan dependensi berikut ke file pom.xml. Konfigurasi ini menggunakan Spring Boot 2.1.4.RELEASE dengan Spring Cloud Finchley.SR1.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
    <relativePath/>
</parent>

<dependencies>
    <!-- SchedulerX Spring Boot starter -->
    <dependency>
        <groupId>com.aliyun.schedulerx</groupId>
        <artifactId>schedulerx2-spring-boot-starter</artifactId>
        <version>${schedulerx2.version}</version>
        <!-- Exclude log4j if you use 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>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
Spring Boot 1.x telah mencapai akhir masa dukungan. Jika Anda masih menggunakan Spring Boot 1.5.x dengan Spring Cloud Edgware, atur versi Spring Cloud Alibaba ke 1.5.1.RELEASE.

Langkah 2: Buat titik masuk aplikasi

Buat kelas startup bernama ScxApplication:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ScxApplication {
    public static void main(String[] args) {
        SpringApplication.run(ScxApplication.class, args);
    }
}

Langkah 3: Buat layanan pengujian

Buat kelas layanan yang dikelola Spring bernama TestService. Kelas ini memvalidasi bahwa injeksi Spring Inversion of Control (IoC) berfungsi dengan benar di dalam kelas pekerjaan.

import org.springframework.stereotype.Service;

@Service
public class TestService {

    public void test() {
        System.out.println("---------IOC Success--------");
    }
}

Langkah 4: Implementasikan prosesor pekerjaan

Buat kelas pekerjaan bernama SimpleTask yang mengimplementasikan ScxSimpleJobProcessor. Kelas ini mendefinisikan logika yang dijalankan setiap kali pekerjaan dipicu.

import com.alibaba.edas.schedulerx.ProcessResult;
import com.alibaba.schedulerx.worker.domain.JobContext;
import com.alibaba.schedulerx.worker.processor.JavaProcessor;
import org.springframework.beans.factory.annotation.Autowired;

public class SimpleTask implements ScxSimpleJobProcessor {

    @Autowired
    private TestService testService;

    @Override
    public ProcessResult process(JobContext context) {
        System.out.println("-----------Hello world---------------");
        testService.test();
        return new ProcessResult(true);
    }
}

Metode process mengembalikan ProcessResult(true) untuk menunjukkan eksekusi yang berhasil. Spring secara otomatis menginjeksikan TestService melalui anotasi @Autowired.

Langkah 5: Buat pekerjaan terjadwal di EDAS console

  1. Masuk ke EDAS console.

  2. Di wilayah test, buat grup pekerjaan terjadwal dan catat ID grup tersebut.

  3. Di dalam grup pekerjaan, buat pekerjaan dengan parameter berikut:

    ParameterNilaiDeskripsi
    Application IDID grup dari langkah sebelumnyaMenautkan pekerjaan ke grup pekerjaan Anda
    Processor class nameSimpleTaskNama kelas lengkap yang mengimplementasikan antarmuka pekerjaan
    Task typeStand-alone operationMenjalankan pekerjaan pada satu instans
    cron expression0 * * * * ?Mememicu pekerjaan sekali setiap menit
    Description(Kosongkan)Deskripsi pekerjaan opsional
    Task parameters(Kosongkan)Parameter waktu proses opsional

Langkah 6: Konfigurasi aplikasi

Di src/main/resources, buat file application.properties dengan pengaturan berikut:

server.port=18033

# Pengaturan koneksi SchedulerX
# Ganti nilai placeholder dengan namespace dan kredensial grup aktual Anda.
spring.schedulerx2.endpoint=acm.aliyun.com
spring.schedulerx2.namespace=<your-namespace-id>
spring.schedulerx2.groupId=<your-group-id>
spring.schedulerx2.appKey=<your-app-key>

Ganti placeholder berikut dengan nilai aktual Anda:

PlaceholderDeskripsiContoh
<your-namespace-id>ID namespace dari EDAS consoled1ce9d38-ab9b-444e-ab2a-4*****
<your-group-id>ID grup dari grup pekerjaan terjadwal AndaDiperoleh di Langkah 5
<your-app-key>Kunci aplikasi untuk otentikasi5pHlwaWpluJGd39******
Wilayah test menggunakan cn-test sebagai regionName-nya. Saat Anda menguji secara lokal, lalu lintas melewati Internet tanpa batasan izin.

Langkah 7: Jalankan dan verifikasi secara lokal

Jalankan metode main di ScxApplication untuk memulai layanan.

Periksa output konsol di IDE Anda. Ketika pekerjaan berhasil dijalankan, pesan berikut akan dicetak sekali setiap menit:

-----------Hello world---------------
---------IOC Success--------

Terapkan ke EDAS

Setelah verifikasi lokal selesai, terapkan aplikasi ke EDAS tanpa mengubah kode atau konfigurasi apa pun. SchedulerX mendukung migrasi mulus dari lingkungan pengembangan ke EDAS.

Pilih target penerapan berdasarkan infrastruktur Anda:

Target penerapanPanduan
Kluster KubernetesBuat dan terapkan aplikasi di kluster Kubernetes
Kluster Elastic Compute Service (ECS)Buat dan terapkan aplikasi di kluster ECS

Setelah penerapan, kelola dan pantau pekerjaan terjadwal Anda dari EDAS console.

Terapkan ke wilayah produksi

Langkah-langkah di atas menggunakan wilayah test untuk pengembangan dan verifikasi. Untuk menerapkan ke wilayah produksi seperti China (Hangzhou), tambahkan kredensial AccessKey Anda ke file application.properties:

spring.cloud.alicloud.access-key=<your-access-key-id>
spring.cloud.alicloud.secret-key=<your-access-key-secret>

Dapatkan ID AccessKey dan Rahasia AccessKey Anda dari halaman Security Management.

Penting

Simpan kredensial AccessKey secara aman. Hindari menyimpannya di sistem kontrol versi. Gunakan variabel lingkungan atau secrets manager di lingkungan produksi.

Langkah selanjutnya

Setelah menerapkan aplikasi ke EDAS, jelajahi kemampuan SchedulerX tambahan:

  • Konfigurasikan jenis pekerjaan lain selain Simple Job Single-instance Edition.

  • Siapkan model eksekusi terdistribusi seperti MapReduce untuk menjalankan beban kerja paralel di beberapa instans.