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

Bagaimana SpringBoot menyepadukan ShedLock untuk melaksanakan tugas berjadual teragih

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-05-13 12:55:06
ke hadapan
1219 orang telah melayarinya

    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>
    Salin selepas log masuk

    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
    ;
    Salin selepas log masuk

    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!

    Label berkaitan:
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan