胶州城阳网站建设,用excel 做网站,用织梦做房产网站,拖拽式网站建设哪家专业项目准备开发个新功能#xff0c;刚好很喜欢ruoyi写的任务调度#xff0c;因此想到了集成ruoyi.quartz模块 #xff0c;遇到了很多问题: 首先因为ruoyi.quartz模块依赖了ruoyi.common模块#xff0c;因此第一步我需要把common模块一部分依赖项复制到了quartz模块内#xf…项目准备开发个新功能刚好很喜欢ruoyi写的任务调度因此想到了集成ruoyi.quartz模块 遇到了很多问题: 首先因为ruoyi.quartz模块依赖了ruoyi.common模块因此第一步我需要把common模块一部分依赖项复制到了quartz模块内复制的内容就是common文件夹内的未用到的部门被我剔除了 当然只是添加common内公共代码是不够的还需要添加依赖
?xml version1.0?
project xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancemodelVersion4.0.0/modelVersionparentgroupIdcom.xxx/groupIdartifactIdleaderdesktop/artifactIdversion0.0.1-SNAPSHOT/version /parent!-- 以上是我springcloud项目父模块定义--artifactIdruoyi-quartz/artifactIdversion4.0/versionnameruoyi-quartz/nameurlhttp://maven.apache.org/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- 定时任务 --dependencygroupIdorg.quartz-scheduler/groupIdartifactIdquartz/artifactIdexclusionsexclusiongroupIdcom.mchange/groupIdartifactIdc3p0/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependency !-- 因为我需要使用多数据源正常项目也可删除--groupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion3.6.0/versionscopecompile/scope/dependency/dependencies/project
当把ruoyi.quartz模块集成到我的springcloud项目的A模块中pom依赖了ruoyi.quartz当启动A模块时访问ruoyi.quartz模块的接口404错误经过查询了解想使用依赖模块ruoyi.quartz的接口必须在A模块启动类里面添加扫描注解
ComponentScan({com.epson.本模块某个路径.*, com.ruoyi.quartz.*})
以上注解添加之后又报
***************************
APPLICATION FAILED TO START
***************************Description:Field jobMapper in com.ruoyi.quartz.service.impl.SysJobServiceImpl required a bean of type com.ruoyi.quartz.mapper.SysJobMapper that could not be found.The injection point has the following annotations:- org.springframework.beans.factory.annotation.Autowired(requiredtrue)Action:Consider defining a bean of type com.ruoyi.quartz.mapper.SysJobMapper in your configuration.解决办法就是加上
MapperScan({com.本模块.mapper, com.ruoyi.quartz.mapper})
当把以上注解加上之后正常应该是没问题的但是因我当前模块使用了多数据源因此又报以下异常
postgresql.util.PSQLException: ERROR: relation sys_job does not exist
正常来说我只需要在ruoyi-quartz模块中的service实现类中添加DS(xxx)数据源指定即可
但是我添加了还是无效所以没办法就尝试第二种集成
1. 首先第一步还是先把ruoyi-quartz使用的所有表格创建一遍因我是使用postgre因此脚本需要使用DBeaver导出postgre的脚本在mysql数据库中执行完sql语句右键把所有表导出csv再选择postgre数据库public位置右键导入数据选择csv文件即可完成postgre的表格创建
2. 把ruoyi-quartz模块中的文件夹全部复制过去原有模块即可我比较喜欢用mybatisplus的方法因此mapper文件被我改造后只有一个接口声明 最终启动还是报sys_job表不存在排查半天发现SysJobServiceImpl类中的init方法的原因注释掉这个方法就启动成功
init方法注释项目启动时初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理注不能手动修改数据库ID和任务组名否则会导致脏数据因此如果不需要项目启动就执行定时任务那么可以注释掉
最后的代码层次 再次访问OK