<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
quartz啟動需要資料庫有很多表的支援,這些表的建表指令碼可以通過如下方式找到
如何找到quartz的資料庫指令碼
在這裡下載,需要注意的是下載2.2.3這個版本,不知道為什麼高版本的反而沒有,真是佛了
程式碼
yml設定
spring: application: name: demo-excel datasource: url: jdbc:mysql://rm-xxx.mysql.rds.aliyuncs.com:3306/quartz_demo?zeroDateTimeBehavior=convertToNull password: quartz_demo username: quartz_demo driver-class-name: com.mysql.cj.jdbc.Driver name: datasource1 quartz: # quartz任務儲存型別:jdbc或memory job-store-type: jdbc # 關閉時等待任務完成 wait-for-jobs-to-complete-on-shutdown: true # 可以覆蓋已有的任務 overwrite-existing-jobs: true properties: org: quartz: scheduler: # 排程器範例名稱 instanceName: scheduler # 排程器範例ID自動生成 instanceId: AUTO jobStore: class: org.springframework.scheduling.quartz.LocalDataSourceJobStore driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate # quartz相關表字首 tablePrefix: QRTZ_ useProperties: false threadPool: class: org.quartz.simpl.SimpleThreadPool # 設定並行執行緒數量 threadCount: 10 # 指定執行緒優先順序 threadPriority: 5 threadsInheritContextClassLoaderOfInitializingThread: true server: port: 8190 mybatis-plus: mapper-locations: classpath*:/mapperxml/*.xml
實現一個最簡單的任務,該任務輸出1111
@Component public class TestJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { // 任務的具體邏輯 System.out.println(1111); } }
設定這個任務的執行計劃
@Configuration public class QuartzConfig { @Bean public JobDetail jobDetail() { JobDetail jobDetail = JobBuilder.newJob(TestJob.class) .withIdentity("test", "test") .storeDurably() .build(); return jobDetail; } public Trigger trigger() { Trigger trigger = TriggerBuilder.newTrigger() .forJob(jobDetail()) .startNow() .withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?")) return trigger; }
啟動任務會看到控制檯每秒鐘列印一次1111
上訴任務是設定在程式碼中,那麼如果我們想把任務設定資料庫中,這樣我們就可以做一個定時任務的維護頁面,可以對定時任務的觸發規則修改,及修改刪除定時任務應該怎麼做呢?
先定義一張儲存定時任務的表
-- auto-generated definition create table sys_job ( id bigint not null primary key, job_name varchar(64) not null comment '任務名稱', job_group varchar(64) not null comment '任務組名', method_name varchar(500) null comment '任務方法', method_params varchar(50) null comment '方法引數', cron_expression varchar(255) null comment 'cron執行表示式', misfire_policy varchar(20) default '3' null comment '計劃執行錯誤策略(1立即執行 2執行一次 3放棄執行)', concurrent char default '1' null comment '是否並行執行(0允許 1禁止)', status char default '0' null comment '狀態(0正常 1暫停)', create_by varchar(64) null comment '建立者', create_time datetime null comment '建立時間', update_by varchar(64) null comment '更新者', update_time datetime null comment '更新時間', remark varchar(500) null comment '備註資訊' ) comment '定時任務排程表';
插入一條資料
INSERT INTO quartz_demo.sys_job (id, job_name, job_group, method_name, method_params, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark) VALUES (1, 'testJob2', 'test2', 'exec', null, '* * * * * ?', '2', '1', '0', null, null, null, null, null);
同時定義一張執行結果記錄表
-- auto-generated definition create table sys_job_log ( job_log_id int auto_increment comment '任務紀錄檔ID' primary key, job_name varchar(64) not null comment '任務名稱', job_group varchar(64) not null comment '任務組名', method_name varchar(500) null comment '任務方法', method_params varchar(50) null comment '方法引數', job_message varchar(500) null comment '紀錄檔資訊', status char default '0' null comment '執行狀態(0正常 1失敗)', exception_info varchar(2000) null comment '異常資訊', create_time datetime null comment '建立時間' ) comment '定時任務排程紀錄檔表';
專案啟動時讀取這張表裡的資料放到quartz中執行
由於程式碼太多了,這邊就不列出來程式碼了,demo已經上傳到GitHub,專案基於springboot、mybatisplus。啟動載入任務的程式碼在com.bxoon.service.impl.SysJobServiceImpl
中
到此這篇關於SpringBoot2.6.3整合quartz的文章就介紹到這了,更多相關SpringBoot整合quartz內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45