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.
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 :
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:
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
CREATE TABLE `shedlock` ( `name` varchar(64) NOT NULL COMMENT 'name' , `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 ;
servlet:
context-path : /automation-quartz-oneserver:port: 12106
servlet:context-path: /automation-quartz-two
2. Run log (coretan)Nod automasi-kuarza-satu log berjalan:
<46>46>
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>
<46>
&
&Task
&mpt
<46 scheduling center execution pelaksanaan tugas dimulakan masa:>46><46>
<46>
<46>
<46>
<46>
<46>
<46>
<46>
<46><46>
46>46>46>46>46>46>46>46>46>46>46>46>46>46>46>46>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!