亚州天堂爱爱,做爱视频国产全过程在线观看,成人试看30分钟免费视频,女人无遮挡裸交性做爰视频网站

? ? ?

告別復雜的定時任務框架,@Scheduled支持在微服務中使用了

背景

微服務項目中,Spring 的 @Scheduled 注解在有多個實例的情況下是無法使用的,因為會有定時任務重復執行的問題。
引入 xxl job 等定時任務框架又非常的重,需要耗費一定的時間才能夠搭建使用,如果項目對定時任務的需求比較簡單,完全劃不來。
@
Scheduled 非常的方便,所以我們可以對 @Scheduled 進行了增強,使其支持分布式的定時任務。

原理

Spring 的 @Scheduled 使用 cron 的情況下,是按照周期執行的,也就是根據表達式計算的下次執行的時間是固定的。

所以我們可以計算出下次執行的時間,然后依據這個時間對當前周期進行加鎖,防止定時任務的重復執行。

這樣,在一個周期內只有一個定時任務會被執行,同時相比直接加鎖,也不會出現執行任務時間過長,以至于影響到下個周期的定時任務執行的情況。

使用

先決條件:配置 redis

使用方法:引入注解 @EnableDistributedScheduling 即可生效。

@EnableDistributedScheduling@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }}

已提交至 Maven 中央倉庫,可直接引入依賴:

<dependency> <groupId>com.gaoice</groupId> <artifactId>distributed-scheduling-spring-boot-starter</artifactId> <version>1.1</version></dependency>


如果微服務項目對定時任務的需求比較簡單,并且對定時任務的可配置性沒有太高要求,完全可以使用增強的
@Scheduled 注解方便快捷地實現分布式的定時任務。


項目地址:
https://github.com/gaoice/distributed-scheduling-spring-boot-starter

歡迎 star 。

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(1)
上一篇 2022年9月17日 上午9:19
下一篇 2022年9月17日 上午9:33

相關推薦