Rumah >Java >javaTutorial >Bagaimana SpringBoot menyepadukan ShedLock untuk melaksanakan tugas berjadual teragih

Bagaimana SpringBoot menyepadukan ShedLock untuk melaksanakan tugas berjadual teragih

WBOY
WBOYke hadapan
2023-05-13 12:55:061119semak imbas

    1 Latar Belakang

    Apabila perkhidmatan projek digunakan dalam kelompok, kod tersebut akan mempunyai tugas berjadual untuk semua orang, tetapi jika setiap nod adalah Ia adalah. tidak sesuai untuk menjalankan tugas yang dijadualkan. ShedLock dalam SpringBoot boleh menyelesaikan masalah ini dengan baik Di bawah saya akan memperkenalkan secara terperinci bagaimana SpringBoot menyepadukan ShedLock, dan cara ShedLock melaksanakan pemasaan teragih.

    2. Apakah itu ShedLock?

    Berikut ialah penyedia kunci ShedLock yang melaksanakan penguncian melalui storan luaran Seperti yang dapat dilihat daripada rajah di bawah, masih terdapat banyak perpustakaan untuk penyepaduan storan luaran :

    Bagaimana SpringBoot menyepadukan ShedLock untuk melaksanakan tugas berjadual teragih

    3. Pelaksanaan

    1.1 Pengenalan pakej pergantungan

    Pakej pergantungan diperlukan untuk shedlock:

    <!-- web工程依赖包 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>net.javacrumbs.shedlock</groupId>
        <artifactId>shedlock-spring</artifactId>
        <version>4.2.0</version>
    </dependency>
     <!--每个外部存储实例所需依赖包不一样,这里是jdbc-->
    <dependency>
        <groupId>net.javacrumbs.shedlock</groupId>
        <artifactId>shedlock-provider-jdbc-template</artifactId>
        <version>4.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

    Pergantungan rajah pokok pakej:

    Bagaimana SpringBoot menyepadukan ShedLock untuk melaksanakan tugas berjadual teragih

    1.2 Konfigurasikan maklumat sambungan pangkalan data

    pelayan:
    port: 8105
    spring:
    sumber data :
    url: jdbc :mysql://127.0.0.1:3306/testjdbc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    nama pengguna: root
    kata laluan: 123456
    pemandu-kelas nama: com.mysql.cj .jdbc.Driver
    taip: com.mysql.cj.jdbc.MysqlDataSource

    1.3 Cipta jadual data Mysql

    CREATE TABLE `shedlock` (
    	`name`  varchar(64) NOT NULL COMMENT &#39;name&#39; ,
    	`lock_until`  timestamp(3) NULL DEFAULT NULL ,
    	`locked_at`  timestamp(3) NULL DEFAULT NULL ,
    	`locked_by`  varchar(255) NULL DEFAULT NULL ,
    	PRIMARY KEY (`name`)
    )
    ENGINE=InnoDB
    DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    ROW_FORMAT=DYNAMIC
    ;

    Provider Konfigurasi

    1.4 . Analisis hasil

    1. Mulakan dua nod perkhidmatan masing-masing, konfigurasi adalah seperti berikut:

    pelayan:

    port: 12105

    servlet:

    context-path : /automation-quartz-one

    server:

    port: 12106

    servlet:
    context-path: /automation-quartz-two



    2. Run log (coretan)

    Nod automasi-kuarza-satu log berjalan:
    2023-02-22 12:01:00.143 [taskExecutor-1] INFO <46>
    <46>

    <46>


    <46>
    <46>
    <46>
    <46>
    <46>
    <46>
    <46><46><46>
    <46>
    <46>
    <46>
    <46>
    <46>
    <46>
    &
    &Task
    &mpt
    <46 execution>
    <46 scheduling center execution pelaksanaan tugas dimulakan masa:><46>
    <46>
    <46>
    <46>
    <46>
    <46>
    <46>
    <46>
    <46><46>

    Atas ialah kandungan terperinci Bagaimana SpringBoot menyepadukan ShedLock untuk melaksanakan tugas berjadual teragih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam