使用PostgreSQL运行XXL-JOB项目详解

写在前面

作为一个技术小白,首次写博客,排版啥的可能不尽如人意,希望各位看官多多包涵;
由于工作中需要使用xxl-job,使用的是PostgreSQL数据库,特意记录一下踩坑日记。

操作简述

  1. 首先去项目地址,获取代码:项目地址
  2. 项目需要提前创建八张表,Mysql数据库可以使用项目代码中的文件创建数据表,由于PGsql与Mysql有差异,PostgreSQL的建表语句可以在此链接下载:建表语句 提取码:vtbh
  3. 运行项目代码,core为项目核心代码不用管,admin相当于后台系统,samples为样例。我们直接运行admin模块即可,运行前,先修改配置文件中数据库相关的配置文件在这里插入图片描述在这里插入图片描述
  4. 登录后台,地址:http://localhost:8080/xxl-job-admin/toLogin
    账户:admin
    密码:123456
  5. 运行测试样例模块,样例有多个版本,可以选择自己使用的版本进行测试,我以SpringBoot项目为例在这里插入图片描述
  6. 修改样例模块的配置文件 application.properties,修改完成后,启动项目
# web port
server.port=8081
# no web
#spring.main.web-environment=false

# log config
logging.config=classpath:logback.xml


### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"  ***后台项目的地址,必填***
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

### xxl-job, access token
xxl.job.accessToken=

### xxl-job executor appname
xxl.job.executor.appname=xxl-job-executor-sample
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=
### **任务的执行的端口号**  可以自己修改
xxl.job.executor.port=9989
### xxl-job executor log-path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job executor log-retention-days
xxl.job.executor.logretentiondays=30
  1. 样例项目启动后,可以看到日志信息,这里可以看到,任务已经注册到后台系统中了
    在这里插入图片描述
  2. 进入后台系统,选择执行器管理,选择对应的执行器,操作中选择编辑,注册方式选择自动注册,随后保存,系统会自动获取样例模块地址及端口号。在这里插入图片描述
  3. 也可以选择手动录入,填写任务机对应的IP地址以及端口号。
  4. 后台选择任务管理,选择对应的任务,点击操作——>运行一次,填写任务参数(必填,可随意填写),点击保存。在这里插入图片描述
  5. 后台调度日志中,可以看到此次任务执行成功。在这里插入图片描述

踩过的坑

Mapper.xml文件中查询语句问题

  1. Mysql与Postgresql分页查询不一样,导致列表中查询不到数据,需要将所有Mapper.xml文件中的分页语句替换为:LIMIT #{pagesize} OFFSET #{offset}
  2. XxlJobLogMapper.xml中findFailJobLogIds查询语句,
    WHERE !(
    (trigger_code in (0, 200) and handle_code = 0)
    OR
    (handle_code = 200)
    )修改为
    WHERE
    (trigger_code !=0 AND handle_code !=0 )
    OR
    (trigger_code !=200 AND handle_code !=0 )
    OR
    (handle_code != 200)
  3. XxlJobRegistryMapper.xml文件中findAll以及findDead查询语句,DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)修改为((select NOW())-INTERVAL ‘${timeout} S’ )

其它问题

  1. 任务未自动注册,一个是项目时间与数据库时间有误差;另一个原因是样例的配置文件中,后台地址配置错误。
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值