继springboot集成xxl-job-01的补充--oracle版本的xxl-job项目(任务调度中心)

上篇留了个问题,前端配置中心不知道怎么配,由于xxljob官网只有mysql的脚本,这里我自己转成了oracle的建表脚本
1、下载官网的代码
xxljob官网代码下载链接
要注意下载master分支的代码:
master分支
doc:sql脚本目录
admin:主代码
core:maven依赖
samples:使用示例
2、根据官网中的mysql建表脚本自己转成oracle脚本,在数据库中导入这八张xxl-job的表
由于文件不知道怎么引,所以建表脚本就先不放了,有需要的可以留言

3、我用的是oracle数据库,所以需要导一下oracle驱动
修改master项目下原有的数据库配置如下:
在这里插入图片描述
master下的pom.xml

<!-- 数据库驱动 -->
<dependency>
	<groupId>com.oracle.database.jdbc</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>11.2.0.4</version>
</dependency>

4、此时启动admin项目,但是报错找不到from关键字,百度后发现还需要改个配置项
在这里插入图片描述
select 1 : 是mysql的语法
select * from dual : oracle 的语法

5、再次启动报命令未正确结束的错误
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210406165442423.png
根据提示的mapper发现,sql语法需要更改,原来的底层mapper支持的是mysql的语法
a、表重命名去掉as
b、所有的 ’ 和 ; 需要改为空

6、按上面修改后重新启动后报无效字符和命令未正常结束
无效字符:
无效字符
此时可以很明显看出来前面那个在建表的时候是有个id主键的,这里应该是原来mysql自增的语法,但是oracle的话需要更改为下面:
红圈的是修改后新增的,表示显示设置自增列
命令未正确结束:
命令未正确结束
limit明显是mysql的语法,oracle应该是用rownum

7、运行后还有个序列不存在的问题,需要在数据库中新增自增序列;
并在数据库中xxl_job_user设置默认的前端调度中心的登录用户和密码;
自增序列:

 create sequence XXL_JOB_GROUP_SEQ
 increment by 1
 start with 1
 minvalue 1
 maxvalue 999999999;

设置默认用户密码: admin/123456

 INSERT INTO xxl_job_user(id, username, password, role, permission) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
commit;

8、运行xxl-job项目,浏览器输入http://localhost:8080/xxl-job-admin/ 可以打开任务调度中心
在这里插入图片描述
按照前篇文章创建执行器和任务,在本地demo-cmf项目中编写xxl-job定时任务,但是修改执行器和任务时报错,发现还有部分语法没有改好;(参考下面第五点的f,g点)
9、代码全部修改成功后,点击执行,报错,见下面第6点,修改后,项目正常启动,定时任务正常执行
执行页面

总结:mysql版本转oracle版本的xxl-job项目
1、下载官网master分支项目
2、将doc目录下的sql改为支持oracle语法
3、修改application.properties内的数据库配置(url,username,password,driver-class-name),修改connection-test-query为SELECT * from dual
4、pom.xml文件增加ojdbc6依赖支持oracle驱动
5、项目的mybatis-mapper层的sql需要修改为oracle语法
a、表重命名去掉as
b、所有的 ’ 和 ; 需要改为空
c、mysql中id自增写法改为oracle中的使用序列自增的语法 (见上述第6,7点)
d、limit是mysql的语法改为oracle后用rownum关键字替代
e、设置初始化用户名和密码
f、oracle中没有DATE_ADD()改为numtodsinterval函数

SELECT t.id
		FROM xxl_job_registry  t
		WHERE t.update_time <![CDATA[ < ]]> #{nowTime}+numtodsinterval(-#{timeout}, 'SECOND')

g、update语法中最好加上指定的jdbcType=VARCHAR类型
6、配置好后执行定时任务时报错:

java.net.MalformedURLException: no protocol: 192.168.5.78:1111/run
 a、配置执行器时,机器地址需要加上http://  上面报错就是因为没有指定协议

7、特别注意,下载的xxl-job-master项目中的xxl-job-core的版本和demo-cmf我的个人项目引入的xxl-job-core的版本必须保持一致,不然定时任务执行仍然会有问题;这里我用的是2.3.0版本

补充:可以把xxl-job项目通过clean、install的方式生产xxl-job-master项目的jar包,之后使用只需要使用cmd命令jar -jar 的方式启动就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值