Springboot集成quartz,并实现定时调度和管理http请求任务

一、环境搭建

1.1 简单说明:

1、springboot集成quartz,使用druid连接池
2、支持http请求任务定时调度,当前支持get、post表单(formdata)、post Json三种请求类型,并记录返回内容
3、通过web界面进行任务管理,包括任务暂停、恢复、修改、历史记录、历史任务查看功能
4、支持调用接口(/quartz/httpJob/add)进行http任务添加  
5、根据jobname或jobgroup进行查询

1.2 运行及访问



1、执行sql目录下的create_table.sql文件,建立quartz以及httpjob需要的数据库表  
2、修改application.properties中的数据库连接方式
3、访问http://localhost:8080/httpJob.html可通过web界面进行httpjob管理

程序搭建并运行后,添加任务后,主页面如下:

Springboot集成quartz,并实现定时调度和管理http请求任务_第1张图片

测试任务配置

Springboot集成quartz,并实现定时调度和管理http请求任务_第2张图片

请求url

http://192.168.3.11:8080/quartz/url/testCurrentTime

对应方法

Springboot集成quartz,并实现定时调度和管理http请求任务_第3张图片

请求参数:根据实际情况,有参数可传,无参数可不传
Cron:0/10 * * * * ?   (每10秒执行一次)
控制台执行结果:

Springboot集成quartz,并实现定时调度和管理http请求任务_第4张图片

修改任务cron:

Springboot集成quartz,并实现定时调度和管理http请求任务_第5张图片

点击暂停

Springboot集成quartz,并实现定时调度和管理http请求任务_第6张图片

点击暂停,可执行记录里查看记录,会发现程序已暂停。

Springboot集成quartz,并实现定时调度和管理http请求任务_第7张图片

1.3代码分析

4个quartz 操作(暂停,恢复,删除,修改),点击相应方法,分别调用quartz操作

如点暂停,暂停job

Springboot集成quartz,并实现定时调度和管理http请求任务_第8张图片
如点修改,按新的cronExpression重新构建trigger
Springboot集成quartz,并实现定时调度和管理http请求任务_第9张图片

springboot 连本地oracle
spring.datasource.url=jdbc:oracle:thin:@192.168.3.11:1521:orcl
spring.datasource.username=zhangm
spring.datasource.password=root123
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
maven 依赖:
  
       com.oracle
       ojdbc14
       10.2.0.4.0

二、问题

2.1 遇到问题

[ERROR] Failed to execute goal on project quartz: Could not resolve dependencies for project com.example:quartz:jar:0.0.1-SNAPSHOT: Could not find artifact com.oracle:ojdbc14:jar:10.2.0.4.0 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
[ERROR] 
原因:oracle的ojdbc.jar是收费的,所以maven的中央仓库中没有这个资源,只能通过配置本地库才能加载到项目中去。
解决: 官网下载 jar包, mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=ojdbc6.jar

2.2 遗留问题:

  1. mysql 分页关键字limit ,不适用于oralce ,已将分页功能注释掉。
  2. 执行记录上次执行时间未记录。

三、参考:

  • 1: github:https://github.com/helloflygit/springboot-quartz.git
  • 2:mysql数据库迁移至Oracle数据库:https://www.jb51.net/article/95345.htm
  • cron具体见http://cron.qqe2.com/ cron

你可能感兴趣的:(微服务领域,java)