欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解析Java定時(shí)任務(wù)的選型及改造問題

 更新時(shí)間:2022年02月09日 16:54:08   作者:當(dāng)年的春天  
這篇文章主要介紹了Java定時(shí)任務(wù)的選型及改造問題,本文給大家提到了Java主流三大定時(shí)任務(wù)框架優(yōu)缺點(diǎn),通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

【前言】

項(xiàng)目中用到了定時(shí)任務(wù),項(xiàng)目之初為了快速開發(fā)上線,當(dāng)時(shí)直接采用最簡單的Linux自帶的crontab;項(xiàng)目逐漸維定下來時(shí),針對(duì)定時(shí)任務(wù)自己進(jìn)行了相關(guān)研究,并根據(jù)項(xiàng)目實(shí)際情況進(jìn)行了對(duì)比以及相關(guān)改造。

【比一比&改一改】

一、項(xiàng)目目前定時(shí)任務(wù)現(xiàn)狀

1、 使用Linux系統(tǒng)的crontab直接調(diào)用Java服務(wù)

2、 優(yōu)缺點(diǎn):

(1)優(yōu)點(diǎn):部署簡單,由linux系統(tǒng)維護(hù)相對(duì)Java進(jìn)程維護(hù)更加維定

(2)缺點(diǎn):單機(jī)部署,風(fēng)險(xiǎn)大;出問題后排錯(cuò)難度大;需要運(yùn)維介入成本大

(3)總結(jié):針對(duì)目前項(xiàng)目情況,弊大于利

二、Java主流三大定時(shí)任務(wù)框架優(yōu)缺點(diǎn)

1、 選型時(shí)原則:少服務(wù)器 后期維護(hù)方便 增加任務(wù)省事 而且快捷 不涉及啟停服務(wù)

2、 Quartz

(1)優(yōu)點(diǎn):支持集群部署

(2)缺點(diǎn):沒有自帶的管理界面;調(diào)度邏輯和執(zhí)行任務(wù)耦合在一起;維護(hù)需要重啟服務(wù)

(3)總結(jié):針對(duì)目前項(xiàng)目情況,利弊相同

3、 xxl-job

(1)優(yōu)點(diǎn):支持集群部署;提供運(yùn)維界面維護(hù)成本??;自帶錯(cuò)誤預(yù)警;相對(duì)elastic-job來說不需要額外的組件(zookeeper);支持調(diào)度策略;支持分片;

(2)缺點(diǎn):相對(duì)Quartz來說需要多部署調(diào)度中心

(3)總結(jié):針對(duì)目前項(xiàng)目情況,利大于弊

4、 elastic-job

(1)優(yōu)點(diǎn):支持集群部署;維護(hù)成本小

(2)缺點(diǎn):elastic-job需要zookeeper,zookeeper集群高可用至少需要三臺(tái)服務(wù)器

(3)總結(jié):針對(duì)目前項(xiàng)目情況,弊大于利

5、 小結(jié):

綜合選型原則及三個(gè)定時(shí)任務(wù)框架的優(yōu)缺點(diǎn)和目前項(xiàng)目的狀況,建議選用xxl-job

三、xxl-job一些特性

1、 xxl-job參考資料: http://www.dbjr.com.cn/article/234826.htm

2、 一些實(shí)用特性:

(1)執(zhí)行失敗可以查看日志

(2)支持郵件報(bào)警

(3)路由策略支持輪詢等策略,可以減輕執(zhí)行服務(wù)器的壓力

(4)輪詢時(shí)間等參數(shù)修改后立即生效

(5)執(zhí)行器有問題或新增,快速識(shí)別

(6)調(diào)度中心高可用,調(diào)度中心可以集群部署(集群部署的機(jī)器時(shí)鐘必須同步),如果調(diào)度中心沒有做負(fù)載在執(zhí)行器的配置中需要配多個(gè)地址,如果調(diào)度中心配置負(fù)載則執(zhí)行器配置負(fù)載地址即可

(7)執(zhí)行器高可用(執(zhí)行器可以集群部署)

四、項(xiàng)目中加入xxl-job結(jié)合

1、 說明:以下Demo以短信發(fā)送服務(wù)定時(shí)任務(wù)為例

2、 建議:執(zhí)行器根據(jù)不同的模塊建立工程(既方便統(tǒng)一部署又方便升級(jí)維護(hù)),比如:結(jié)算的定時(shí)任務(wù)可以組成一個(gè)工程;短信定時(shí)任務(wù)可以組成一個(gè)工程等

3、 項(xiàng)目中增加xxl-job

(1)在pom中增加依賴

(2)application.properties增加相關(guān)配置

(3)增加config解析類

(4)增加執(zhí)行器

【總結(jié)】

在技術(shù)選型的時(shí)候既要站在當(dāng)前也要考慮到未來,沒有什么是永遠(yuǎn)的唯一的,要結(jié)合具體的場景業(yè)務(wù)用發(fā)展的眼光去看待。

到此這篇關(guān)于解析Java定時(shí)任務(wù)的選型及改造問題的文章就介紹到這了,更多相關(guān)java定時(shí)任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringCloud Eureka搭建的方法步驟

    SpringCloud Eureka搭建的方法步驟

    這篇文章主要介紹了SpringCloud Eureka搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • SpringCloud?GateWay網(wǎng)關(guān)示例代碼詳解

    SpringCloud?GateWay網(wǎng)關(guān)示例代碼詳解

    這篇文章主要介紹了SpringCloud?GateWay網(wǎng)關(guān),Spring?cloud?Gateway的功能很多很強(qiáng)大,文中提到了Spring?Cloud?Gateway中幾個(gè)重要的概念,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-04-04
  • mybatis報(bào)Query?was?Empty異常的問題

    mybatis報(bào)Query?was?Empty異常的問題

    這篇文章主要介紹了mybatis報(bào)Query?was?Empty異常的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • IDEA 如何導(dǎo)入別人的javaweb項(xiàng)目進(jìn)行部署

    IDEA 如何導(dǎo)入別人的javaweb項(xiàng)目進(jìn)行部署

    這篇文章主要介紹了IDEA 如何導(dǎo)入別人的javaweb項(xiàng)目進(jìn)行部署,本文給大家分享我的詳細(xì)部署過程及遇到問題解決方法,需要的朋友可以參考下
    2023-03-03
  • 基于LinkedHashMap實(shí)現(xiàn)LRU緩存

    基于LinkedHashMap實(shí)現(xiàn)LRU緩存

    LinkedHashMap是Java集合中一個(gè)常用的容器,它繼承了HashMap, 是一個(gè)有序的Hash表。那么該如何基于LinkedHashMap實(shí)現(xiàn)一個(gè)LRU緩存呢?本文將介紹LinkedHashMap的實(shí)現(xiàn)原理,感興趣的同學(xué)可以參考一下
    2023-05-05
  • RocketMQ消費(fèi)冪概念與使用分析

    RocketMQ消費(fèi)冪概念與使用分析

    如果有?個(gè)操作,多次執(zhí)?與?次執(zhí)?所產(chǎn)?的影響是相同的,我們就稱這個(gè)操作是冪等的。當(dāng)出現(xiàn)消費(fèi)者對(duì)某條消息重復(fù)消費(fèi)的情況時(shí),重復(fù)消費(fèi)的結(jié)果與消費(fèi)?次的結(jié)果是相同的,并且多次消費(fèi)并未對(duì)業(yè)務(wù)系統(tǒng)產(chǎn)?任何負(fù)?影響,那么這整個(gè)過程就可實(shí)現(xiàn)消息冪等
    2023-02-02
  • Java詳細(xì)分析LCN框架分布式事務(wù)

    Java詳細(xì)分析LCN框架分布式事務(wù)

    這篇文章主要介紹了Java LCN框架分布式事務(wù),分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上
    2022-07-07
  • Java創(chuàng)建并運(yùn)行線程的方法

    Java創(chuàng)建并運(yùn)行線程的方法

    這篇文章主要介紹了Java創(chuàng)建并運(yùn)行線程的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Maven實(shí)戰(zhàn)之搭建Maven私服和鏡像的方法(圖文)

    Maven實(shí)戰(zhàn)之搭建Maven私服和鏡像的方法(圖文)

    本篇文章主要介紹了搭建Maven私服和鏡像的方法(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • java課程設(shè)計(jì)之坦克大戰(zhàn)

    java課程設(shè)計(jì)之坦克大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了java課程設(shè)計(jì)之坦克大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評(píng)論