Tüm Ürünler
Search
Belge Merkezi

Enterprise Distributed Application Service:Implement job scheduling

Son Güncelleme:Oct 03, 2026

SchedulerX, Enterprise Distributed Application Service (EDAS) üzerine dağıtılan Spring Cloud uygulamalarında zamanlanmış işleri çalıştırmanıza olanak tanır. Bu kılavuz, bir Simple Job Single-instance Edition işi oluşturma, yerel ortamda test etme ve EDAS'a dağıtma sürecinde size rehberlik eder.

SchedulerX, Alibaba Cloud'un dağıtılmış iş zamanlama platformudur. Şu özellikleri sunar:

  • Dakika altı hassasiyet: Cron ifadeleri kullanarak saniye düzeyinde granülerite ile işleri zamanlayın.

  • Yüksek kullanılabilirlik: Yerleşik yük devretme ve güvenilir çalıştırma desteği.

  • Dağıtılmış yürütme modelleri: MapReduce gibi modellerle paralel iş yüklerini çalıştırın.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • EDAS etkinleştirilmiş bir Alibaba Cloud hesabı

  • EDAS konsolu erişimi

1. Adım: Maven projesini oluşturun

scx-example adında bir Maven projesi oluşturun.

Aşağıdaki bağımlılıkları pom.xml dosyanıza ekleyin. Bu yapılandırma, Spring Cloud Finchley.SR1 ile Spring Boot 2.1.4.RELEASE sürümünü kullanır.

<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 kullanım ömrünü tamamlamıştır. Hala Spring Cloud Edgware ile Spring Boot 1.5.x kullanıyorsanız, Spring Cloud Alibaba sürümünü 1.5.1.RELEASE olarak ayarlayın.

2. Adım: Uygulama giriş noktasını oluşturun

ScxApplication adında bir başlangıç sınıfı oluşturun:

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);
    }
}

3. Adım: Test hizmeti oluşturun

TestService adında Spring tarafından yönetilen bir hizmet sınıfı oluşturun. Bu sınıf, iş sınıfında Spring Tersine Kontrol (IoC) enjeksiyonunun doğru çalıştığını doğrular.

import org.springframework.stereotype.Service;

@Service
public class TestService {

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

4. Adım: İş işlemcisini uygulayın

ScxSimpleJobProcessor arayüzünü uygulayan SimpleTask adında bir iş sınıfı oluşturun. Bu sınıf, iş her tetiklendiğinde çalışacak mantığı tanımlar.

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);
    }
}

process yöntemi, başarılı çalıştırmayı belirtmek için ProcessResult(true) döndürür. Spring, @Autowired anotasyonu aracılığıyla TestService öğesini otomatik olarak enjekte eder.

5. Adım: EDAS konsolunda zamanlanmış bir iş oluşturun

  1. EDAS konsoluna giriş yapın.

  2. test bölgesinde zamanlanmış bir iş grubu oluşturun ve grup kimliğini not edin.

  3. İş grubunda aşağıdaki parametrelerle bir iş oluşturun:

    Parametre Değer Açıklama
    Application ID Önceki adımdaki grup kimliği İşi iş grubunuza bağlar
    Processor class name SimpleTask İş arayüzünü uygulayan tam sınıf adı
    Task type Stand-alone operation İşi tek bir örnekte çalıştırır
    cron expression 0 * * * * ? İşi her dakika bir tetikler
    Description (Boş bırakın) İsteğe bağlı iş açıklaması
    Task parameters (Boş bırakın) İsteğe bağlı çalışma zamanı parametreleri

6. Adım: Uygulamayı yapılandırın

src/main/resources dizininde aşağıdaki ayarlara sahip application.properties dosyasını oluşturun:

server.port=18033

# SchedulerX connection settings
# Replace the placeholder values with your actual namespace and group credentials.
spring.schedulerx2.endpoint=acm.aliyun.com
spring.schedulerx2.namespace=<your-namespace-id>
spring.schedulerx2.groupId=<your-group-id>
spring.schedulerx2.appKey=<your-app-key>

Aşağıdaki yer tutucuları gerçek değerlerinizle değiştirin:

Yer Tutucu Açıklama Örnek
<your-namespace-id> EDAS konsolundaki ad alanı kimliği d1ce9d38-ab9b-444e-ab2a-4*****
<your-group-id> Zamanlanmış iş grubunuzun grup kimliği 5. Adımda elde edilir
<your-app-key> Kimlik doğrulama için uygulama anahtarı 5pHlwaWpluJGd39******
test bölgesi regionName olarak cn-test değerini kullanır. Yerel olarak test ettiğinizde, trafik izin kısıtlamaları olmadan İnternet üzerinden gider.

7. Adım: Yerel ortamda çalıştırın ve doğrulayın

Hizmeti başlatmak için ScxApplication içindeki main yöntemini çalıştırın.

IDE'nizdeki konsol çıktısını kontrol edin. İş başarıyla çalıştığında, aşağıdaki mesajlar her dakika bir yazdırılır:

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

EDAS'a dağıtın

Yerel doğrulamadan sonra, herhangi bir kod veya yapılandırma değişikliği yapmadan uygulamayı EDAS'a dağıtın. SchedulerX, geliştirme ortamından EDAS'a sorunsuz geçiş destekler.

Altyapınıza göre bir dağıtım hedefi seçin:

Dağıtım hedefi Kılavuz
Kubernetes kümesi Kubernetes kümelerinde uygulama oluşturma ve dağıtma
Elastic Compute Service (ECS) kümesi ECS kümelerinde uygulama oluşturma ve dağıtma

Dağıtımdan sonra, zamanlanmış işlerinizi EDAS konsolundan yönetin ve izleyin.

Üretim bölgelerine dağıtın

Yukarıdaki adımlar, geliştirme ve doğrulama için test bölgesini kullanır. Çin (Hangzhou) gibi bir üretim bölgesine dağıtmak için AccessKey kimlik bilgilerinizi application.properties dosyasına ekleyin:

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

AccessKey ID'nizi ve AccessKey gizli anahtarınızı Security Management sayfasından alın.

Önemli

AccessKey kimlik bilgilerini güvenli bir şekilde saklayın. Bunları sürüm kontrolüne kaydetmekten kaçının. Üretim ortamlarında ortam değişkenleri veya bir gizli anahtar yöneticisi kullanın.

Sonraki adımlar

Uygulamayı EDAS'a dağıttıktan sonra ek SchedulerX özelliklerini keşfedin:

  • Simple Job Single-instance Edition dışındaki diğer iş türlerini yapılandırın.

  • Birden çok örnekte paralel iş yükleri çalıştırmak için MapReduce gibi dağıtılmış yürütme modelleri kurun.