欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么使用Quartz實(shí)現(xiàn)Java高可用定時(shí)任務(wù)

這篇文章主要介紹了怎么使用Quartz實(shí)現(xiàn)Java高可用定時(shí)任務(wù)的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇怎么使用Quartz實(shí)現(xiàn)Java高可用定時(shí)任務(wù)文章都會(huì)有所收獲,下面我們一起來看看吧。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了尉犁免費(fèi)建站歡迎大家使用!

定時(shí)任務(wù)使用指南

如果你想做定時(shí)任務(wù),有高可用方面的需求,或者僅僅想入門快,上手簡(jiǎn)單,那么選用它準(zhǔn)沒錯(cuò)。

定時(shí)任務(wù)模塊是對(duì)Quartz框架進(jìn)一步封裝,使用更加簡(jiǎn)潔。

1、引入依賴

<dependency>
    <groupId>xin.altitude.cms</groupId>
    <artifactId>ucode-cms-quartz</artifactId>
    <version>1.5.4.1</version>
</dependency>

2、快速上手

實(shí)現(xiàn)org.quartz.Job接口;使用注解CronExp添加任務(wù)的調(diào)度策略;使用注解Component將任務(wù)注入容器中。

啟動(dòng)項(xiàng)目,定時(shí)任務(wù)便處于監(jiān)聽與運(yùn)行中。

@Component
@DisallowConcurrentExecution
@CronExp(cron = "0/5 * * * * ?")
public class DemoJob implements Job {
    @Override
    public void execute(JobExecutionContext context) {
        System.out.println("任務(wù)1:" + LocalDateTime.now());
    }
}

3、手動(dòng)觸發(fā)定時(shí)任務(wù)

定時(shí)任務(wù)除了以既有頻率周期性運(yùn)行外,還有通過接口手動(dòng)被觸發(fā)的能力。

調(diào)用如下接口,可手動(dòng)觸發(fā)任務(wù)ID編號(hào)為jobId的任務(wù)。

http://localhost:8080/cms-api/quartz/job/{jobId}

如果有手動(dòng)觸發(fā)定時(shí)任務(wù)的需求,則需要任務(wù)ID唯一并已知,因此需要在編寫定時(shí)任務(wù)時(shí)手動(dòng)指定。

@CronExp(id = 1, cron = "0/5 * * * * ?")

通過注解CronExp的id屬性可指定任務(wù)ID,不顯示指定則使用隨機(jī)ID,不滿足已知的條件,因此無法手動(dòng)觸發(fā)。

4、帶參數(shù)任務(wù)

盡管大多數(shù)任務(wù)不需要注入?yún)?shù),但仍有少量的場(chǎng)景需要向定時(shí)任務(wù)注入?yún)?shù)。

public void execute(JobExecutionContext context) {
    /* 如果在調(diào)用任務(wù)時(shí)傳入了參數(shù),則能夠從Map中獲取 */
    Map<String, Object> dataMap = context.getMergedJobDataMap();
    /* 比如從Map中獲取一個(gè)鍵值對(duì),一般來說參數(shù)均為基本數(shù)據(jù)類型 */
    Object key = dataMap.get("key");
    System.out.println("任務(wù)2:" + LocalDateTime.now() + ": " + key);
}

在編寫定時(shí)任務(wù)時(shí),可從JobExecutionContext對(duì)象中解析一個(gè)Map,從而完成參數(shù)的注入。

http://localhost:8080/cms-api/quartz/job/1?key=a

上述http調(diào)用的含義是手動(dòng)觸發(fā)任務(wù)ID為【1】的任務(wù),并且向其傳遞參數(shù)為【key】值為【a】的參數(shù)。

5、任務(wù)并發(fā)

本框架不支持任務(wù)并發(fā),換句話說并發(fā)對(duì)定時(shí)任務(wù)不利,因此需要手動(dòng)禁止。

需要注意的是Quartz的并發(fā)是指當(dāng)任務(wù)執(zhí)行耗時(shí)超過任務(wù)調(diào)度周期時(shí),上一個(gè)任務(wù)未執(zhí)行完,新任務(wù)是否執(zhí)行。

一般來說需要顯示禁止并發(fā),在任務(wù)類上添加注解DisallowConcurrentExecution即可禁止任務(wù)并發(fā)。

6、持久化

如果定時(shí)任務(wù)有高可用的需求,那么需要對(duì)任務(wù)進(jìn)行持久化。定時(shí)任務(wù)數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中后,支持應(yīng)用程序多開。定時(shí)任務(wù)持久化多節(jié)點(diǎn)部署后,集群中單節(jié)點(diǎn)故障不影響定時(shí)任務(wù)的執(zhí)行。

定時(shí)任務(wù)持久化,僅需修改yml文件配置即可達(dá)到目標(biāo),無需修改代碼。一般而言使用MySQL做持久化的容器。

spring:
  quartz:
    properties:
      org.quartz.jobStore.isClustered: true
      org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX
      org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
      org.quartz.jobStore.dataSource: qzDS
      org.quartz.dataSource.qzDS.driver: com.mysql.cj.jdbc.Driver
      org.quartz.dataSource.qzDS.URL: jdbc:mysql://localhost:3306/quartz-demo
      org.quartz.dataSource.qzDS.user: root
      org.quartz.dataSource.qzDS.password: 123456

除了修改主機(jī)、端口、數(shù)據(jù)庫(kù)名、用戶名、密碼五個(gè)參數(shù)外,其余參數(shù)使用默認(rèn)值即可。

配置完數(shù)據(jù)庫(kù)連接后,使用SQL腳本,注意初始化數(shù)據(jù)庫(kù)

關(guān)于“怎么使用Quartz實(shí)現(xiàn)Java高可用定時(shí)任務(wù)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“怎么使用Quartz實(shí)現(xiàn)Java高可用定時(shí)任務(wù)”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:怎么使用Quartz實(shí)現(xiàn)Java高可用定時(shí)任務(wù)
網(wǎng)站URL:http://aaarwkj.com/article16/gjdedg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、虛擬主機(jī)、品牌網(wǎng)站建設(shè)網(wǎng)站排名、網(wǎng)站制作全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
一本色道久久亚洲综合精品蜜桃 | 亚洲人成网站18禁止人| 中文字幕成人乱码亚洲| 欧美精品一区二区久久| 亚洲日本久久久午夜精品| 欧美日韩久久免费观看| 蜜桃视频中文字幕二区三区| 亚洲av粉色一区二区三区| 成人av影视中文字幕| 久久精品久久久精品| 欧美亚洲另类国产精品| 日韩欧美一区二区三级| 97免费公开在线观看| 日韩伦理高清在线观看| 国产一区二区三区区别| 91亚色在线免费观看| 亚洲精品色在线网站国产呦| 手机免费在线观看国产精品| 亚州欧美制服另类国产| 国产亚洲欧美日韩网站| 未满十八在线观看网址| 久久三级中文欧大战字幕| jk黑丝白丝国产精品| 国产亚洲超级97免费视频| 曰本真人性做爰视频免费| 日本一道二区三区我不卡| 亚洲综合色日本日b网| 十八岁毛片一区二区三区| 97精品少妇一区二区三区| 国产日韩欧美另类综合| 97视频在线免费播放| 国产精品国产三级农村av| 日韩精品色av一区二区| 四虎在线经典视频播放| 国产精品视频不卡免费看| 思思久久96热在精品国产| 男女在线视频网站免费| 日本视频免费一区二区| 亚洲精品视频久久偷拍| 亚洲精品91在线中文字幕| 国产一区二区三区在线视频播放|