定时任务xxl-job使用改造使用postgresql数据库

文章目录

参考

说明

mapper.xml语句修改

XxlJobLogMapper.xml

findFailJobLogIds(运算符替换)

原SQL

sql 复制代码
SELECT id FROM "xxl_job_log"
WHERE !(
	(trigger_code in (0, 200) and handle_code = 0)
	OR
	(handle_code = 200)
)
AND "alarm_status" = 0
ORDER BY id ASC
LIMIT #{pagesize}

修改

! 修改为 NOT

sql 复制代码
SELECT id FROM "xxl_job_log"
WHERE NOT (
	(trigger_code in (0, 200) and handle_code = 0)
	OR
	(handle_code = 200)
)
AND "alarm_status" = 0
ORDER BY id ASC
LIMIT #{pagesize}

pageList(分页)

原SQL

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_log AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="jobId==0 and jobGroup gt 0">
		AND t.job_group = #{jobGroup}
	</if>
	<if test="jobId gt 0">
		AND t.job_id = #{jobId}
	</if>
	<if test="triggerTimeStart != null">
		AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart}
	</if>
	<if test="triggerTimeEnd != null">
		AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd}
	</if>
	<if test="logStatus == 1" >
		AND t.handle_code = 200
	</if>
	<if test="logStatus == 2" >
		AND (
			t.trigger_code NOT IN (0, 200) OR
			t.handle_code NOT IN (0, 200)
		)
	</if>
	<if test="logStatus == 3" >
		AND t.trigger_code = 200
		AND t.handle_code = 0
	</if>
</trim>
ORDER BY t.trigger_time DESC
LIMIT #{offset}, #{pagesize}

修改

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_log AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="jobId==0 and jobGroup gt 0">
		AND t.job_group = #{jobGroup}
	</if>
	<if test="jobId gt 0">
		AND t.job_id = #{jobId}
	</if>
	<if test="triggerTimeStart != null">
		AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart}
	</if>
	<if test="triggerTimeEnd != null">
		AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd}
	</if>
	<if test="logStatus == 1" >
		AND t.handle_code = 200
	</if>
	<if test="logStatus == 2" >
		AND (
			t.trigger_code NOT IN (0, 200) OR
			t.handle_code NOT IN (0, 200)
		)
	</if>
	<if test="logStatus == 3" >
		AND t.trigger_code = 200
		AND t.handle_code = 0
	</if>
</trim>
ORDER BY t.trigger_time DESC
LIMIT #{pagesize} offset #{offset}

findClearLogIds(分页)

原SQL

sql 复制代码
SELECT id FROM xxl_job_log
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="jobGroup gt 0">
		AND job_group = #{jobGroup}
	</if>
	<if test="jobId gt 0">
		AND job_id = #{jobId}
	</if>
	<if test="clearBeforeTime != null">
		AND trigger_time <![CDATA[ <= ]]> #{clearBeforeTime}
	</if>
	<if test="clearBeforeNum gt 0">
		AND id NOT in(
		SELECT id FROM(
		SELECT id FROM xxl_job_log AS t
		<trim prefix="WHERE" prefixOverrides="AND | OR" >
			<if test="jobGroup gt 0">
				AND t.job_group = #{jobGroup}
			</if>
			<if test="jobId gt 0">
				AND t.job_id = #{jobId}
			</if>
		</trim>
		ORDER BY t.trigger_time desc
		LIMIT 0, #{clearBeforeNum}
		) t1
		)
	</if>
</trim>
order by id asc
LIMIT #{pagesize}

修改

sql 复制代码
SELECT id FROM xxl_job_log
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="jobGroup gt 0">
		AND job_group = #{jobGroup}
	</if>
	<if test="jobId gt 0">
		AND job_id = #{jobId}
	</if>
	<if test="clearBeforeTime != null">
		AND trigger_time <![CDATA[ <= ]]> #{clearBeforeTime}
	</if>
	<if test="clearBeforeNum gt 0">
		AND id NOT in(
		SELECT id FROM(
		SELECT id FROM xxl_job_log AS t
		<trim prefix="WHERE" prefixOverrides="AND | OR" >
			<if test="jobGroup gt 0">
				AND t.job_group = #{jobGroup}
			</if>
			<if test="jobId gt 0">
				AND t.job_id = #{jobId}
			</if>
		</trim>
		ORDER BY t.trigger_time desc
		LIMIT #{clearBeforeNum}
		) t1
		)
	</if>
</trim>
order by id asc
LIMIT #{pagesize}

findLogReport(as大小写)

原SQL

sql 复制代码
SELECT
	COUNT(handle_code) triggerDayCount,
	SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning,
	SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc
FROM xxl_job_log
WHERE trigger_time BETWEEN #{from} and #{to}

修改

as 后面的别名是大小写格式,加双引号

sql 复制代码
SELECT
	COUNT(handle_code) "triggerDayCount",
	SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as "triggerDayCountRunning",
	SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as "triggerDayCountSuc"
FROM xxl_job_log
WHERE trigger_time BETWEEN #{from} and #{to}

XxlJobRegistryMapper.xml

findDead(时间)

原SQL

sql 复制代码
SELECT t.id
FROM xxl_job_registry AS t
WHERE t.update_time <![CDATA[ < ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)

修改

DATE_ADD 在postgresql中没有

sql 复制代码
SELECT t.id
FROM xxl_job_registry AS t
WHERE t.update_time <![CDATA[ < ]]> (now() - INTERVAL '${timeout} S')

findAll(时间)

原SQL

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_registry AS t
WHERE t.update_time <![CDATA[ > ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)

修改

DATE_ADD 在postgresql中没有

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_registry AS t
WHERE t.update_time <![CDATA[ > ]]> (now() - INTERVAL '${timeout} S')

XxlJobGroupMapper.xml

pageList(分页)

原SQL

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_group AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="appname != null and appname != ''">
		AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%')
	</if>
	<if test="title != null and title != ''">
		AND t.title like CONCAT(CONCAT('%', #{title}), '%')
	</if>
</trim>
ORDER BY t.app_name, t.title, t.id ASC
LIMIT #{offset}, #{pagesize}

修改

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_group AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="appname != null and appname != ''">
		AND t.app_name like CONCAT(CONCAT('%', #{appname}), '%')
	</if>
	<if test="title != null and title != ''">
		AND t.title like CONCAT(CONCAT('%', #{title}), '%')
	</if>
</trim>
ORDER BY t.app_name, t.title, t.id ASC
LIMIT #{pagesize} offset #{offset}

XxlJobInfoMapper.xml

pageList(分页)

原SQL

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="jobGroup gt 0">
		AND t.job_group = #{jobGroup}
	</if>
	<if test="triggerStatus gte 0">
		AND t.trigger_status = #{triggerStatus}
	</if>
	<if test="jobDesc != null and jobDesc != ''">
		AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%')
	</if>
	<if test="executorHandler != null and executorHandler != ''">
		AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%')
	</if>
	<if test="author != null and author != ''">
		AND t.author like CONCAT(CONCAT('%', #{author}), '%')
	</if>
</trim>
ORDER BY id DESC
LIMIT #{offset}, #{pagesize}

修改

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="jobGroup gt 0">
		AND t.job_group = #{jobGroup}
	</if>
	<if test="triggerStatus gte 0">
		AND t.trigger_status = #{triggerStatus}
	</if>
	<if test="jobDesc != null and jobDesc != ''">
		AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%')
	</if>
	<if test="executorHandler != null and executorHandler != ''">
		AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%')
	</if>
	<if test="author != null and author != ''">
		AND t.author like CONCAT(CONCAT('%', #{author}), '%')
	</if>
</trim>
ORDER BY id DESC
LIMIT #{pagesize} offset #{offset}

scheduleJobQuery(分页)

原SQL

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t
WHERE t.trigger_status = 1
	and t.trigger_next_time <![CDATA[ <= ]]> #{maxNextTime}
ORDER BY id ASC
LIMIT #{pagesize}

修改

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_info AS t
WHERE t.trigger_status = 1
	and t.trigger_next_time <![CDATA[ <= ]]> #{maxNextTime}
ORDER BY id ASC
LIMIT #{pagesize} offset 0

XxlJobLogGlueMapper.xml

removeOld(分页)

原SQL

sql 复制代码
DELETE FROM xxl_job_logglue
WHERE id NOT in(
	SELECT id FROM(
		SELECT id FROM xxl_job_logglue
		WHERE "job_id" = #{jobId}
		ORDER BY update_time desc
		LIMIT 0, #{limit}
	) t1
) AND "job_id" = #{jobId}

修改

sql 复制代码
DELETE FROM xxl_job_logglue
WHERE id NOT in(
	SELECT id FROM(
		SELECT id FROM xxl_job_logglue
		WHERE "job_id" = #{jobId}
		ORDER BY update_time desc
		LIMIT #{limit}
	) t1
) AND "job_id" = #{jobId}

XxlJobUserMapper.xml

pageList(分页)

原SQL

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_user AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="username != null and username != ''">
		AND t.username like CONCAT(CONCAT('%', #{username}), '%')
	</if>
	<if test="role gt -1">
		AND t.role = #{role}
	</if>
</trim>
ORDER BY username ASC
LIMIT #{offset}, #{pagesize}

修改

sql 复制代码
SELECT <include refid="Base_Column_List" />
FROM xxl_job_user AS t
<trim prefix="WHERE" prefixOverrides="AND | OR" >
	<if test="username != null and username != ''">
		AND t.username like CONCAT(CONCAT('%', #{username}), '%')
	</if>
	<if test="role gt -1">
		AND t.role = #{role}
	</if>
</trim>
ORDER BY username ASC
LIMIT #{pagesize} offset #{offset}
相关推荐
瀚高PG实验室15 小时前
数据库安全配置指导
服务器·数据库·瀚高数据库
憋问我,我也不会15 小时前
MYSQL 命令
数据库·mysql
24K老游16 小时前
postgres15 flink cdc同步测试
数据库
无泡汽水16 小时前
MySQL入门练习50题
数据库·mysql
JIngJaneIL17 小时前
助农惠农服务平台|助农服务系统|基于SprinBoot+vue的助农服务系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·助农惠农服务平台
云外天ノ☼17 小时前
待办事项全栈实现:Vue3 + Node.js (Koa) + MySQL深度整合,构建生产级任务管理系统的技术实践
前端·数据库·vue.js·mysql·vue3·koa·jwt认证
Spirit_NKlaus17 小时前
Springboot自定义配置解密处理器
java·spring boot·后端
小光学长17 小时前
基于Vue的智慧楼宇报修平台设计与实现066z15wb(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
CodeBlossom18 小时前
Spring Cache快速入门
java·数据库·spring
tuokuac18 小时前
ps -ef | grep redis
数据库·redis·缓存