quartz集群與springBoot2 0整合

2021-09-23 23:37:48 字數 2492 閱讀 4152

>

>

org.springframework.bootgroupid

>

>

spring-boot-starter-quartzartifactid

>

dependency

>

在quartz的jar包中可以找到\org\quartz\impl\jdbcjobstore\tables_mysql_innodb.sql,複製到resouce目錄下,刪掉檔案中前面的注釋。

server.port=8080

spring.datasource.url=jdbc:mysql:

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.jdbc.driver

spring.jpa.show-sql=true

############################quartz###############################################

spring.quartz.jdbc.schema=classpath:tables_mysql_innodb.sql

spring.quartz.jdbc.initialize-schema=never

##集群只在儲存方式是jobstore才有效

spring.quartz.job-store-type=jdbc

##同樣名字的job在插入到表中會報錯,設定為true會覆蓋之前相同名字的job

spring.quartz.overwrite-existing-jobs=true

spring.quartz.properties.org.quartz.jobstore.class = org.quartz.impl.jdbcjobstore.jobstoretx

##配置集群的話,必須例項名一樣

spring.quartz.properties.org.quartz.scheduler.instancename = myclusteredscheduler

##根據主機以及時間戳生成例項id

spring.quartz.properties.org.quartz.scheduler.instanceid = auto

spring.quartz.properties.org.quartz.threadpool.class = org.quartz.simpl.******threadpool

spring.quartz.properties.org.quartz.threadpool.threadcount = 5

##mysql使用的驅動**

spring.quartz.properties.org.quartz.jobstore.driverdelegateclass = org.quartz.impl.jdbcjobstore.stdjdbcdelegate

spring.quartz.properties.org.quartz.jobstore.tableprefix=qrtz_

##開啟集群配置

spring.quartz.properties.org.quartz.jobstore.isclustered=true

spring.quartz.properties.org.quartz.plugin.shutdownhook.class=org.quartz.plugins.management.shutdownhookplugin

spring.quartz.properties.org.quartz.plugin.shutdownhook.cleanshutdown=true

可以使用應用中的bean,不用加component註解

public

class

myjob

extends

quartzjobbean

}

直接把trigger以及jobdetail注入到spring上下文,spring會自動用scheduler註冊trigger。

jobdetail在沒有trigger繫結的情況下,必須指定持久化,所有在返回jobdetail的bean時,指明storedurably。

public

class

@bean

public jobdetail myjobdetail()

@bean

public trigger mytrigger()

}

專案用兩個例項執行,發現其中乙個執行定時任務的時候,另乙個專案的定時任務是不執行的。quartz集群成功的關鍵是使用相同的資料庫以及,集群的每個主機時間同步。

在Spring 下配置Quartz集群

由於專案將要上線,而專案中的quartz集群配置一直沒時間弄,本以為應該是一件挺簡單的事,沒想到gooble了一兩天才解決問題,主要是因為spring到3.0.7這個版本為止都沒有原生支援quartz的集群,原來的quartz配置在單例項下執行正常,配置集群之後各種異常都來了,今天終於配置成功,在這...

spring4 quartz2 集群動態任務

生產環境 nginx tomcat quartz2.2.1 spring4.2.1 集群。實現功能 可新增新任務,刪除任務,更新任務,暫停任務,恢復任務 任務管理 修改任務 新增任務 靜態任務實現每20秒websocket向客戶端傳送一文字訊息和資訊。靜態任務測試位址 重新整理位址可以看到訪問到不同...

Quartz使用與Spring整合系列教程

quartz的使用 url quartz的scheduler初始化原始碼分析 url quartz的job 觸發器的暫停與恢復原始碼分析 url quartz的job儲存,觸發器 任務刪除,原始碼分析 url quartzs的job,trriger 原始碼分析 url quartz 任務儲存jobs...