You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
263 lines
9.8 KiB
263 lines
9.8 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<!-- |
|
~ Licensed to the Apache Software Foundation (ASF) under one or more |
|
~ contributor license agreements. See the NOTICE file distributed with |
|
~ this work for additional information regarding copyright ownership. |
|
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
|
~ (the "License"); you may not use this file except in compliance with |
|
~ the License. You may obtain a copy of the License at |
|
~ |
|
~ http://www.apache.org/licenses/LICENSE-2.0 |
|
~ |
|
~ Unless required by applicable law or agreed to in writing, software |
|
~ distributed under the License is distributed on an "AS IS" BASIS, |
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
~ See the License for the specific language governing permissions and |
|
~ limitations under the License. |
|
--> |
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|
<mapper namespace="org.apache.dolphinscheduler.dao.mapper.TaskGroupQueueMapper"> |
|
|
|
<resultMap type="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue" id="TaskGroupQueueMap"> |
|
<result property="id" column="id" jdbcType="INTEGER"/> |
|
<result property="taskId" column="task_id" jdbcType="INTEGER"/> |
|
<result property="taskName" column="task_name" jdbcType="VARCHAR"/> |
|
<result property="groupId" column="group_id" jdbcType="INTEGER"/> |
|
<result property="processId" column="process_id" jdbcType="INTEGER"/> |
|
<result property="priority" column="priority" jdbcType="INTEGER"/> |
|
<result property="status" column="status" jdbcType="INTEGER"/> |
|
<result property="forceStart" column="force_start" jdbcType="INTEGER"/> |
|
<result property="inQueue" column="in_queue" jdbcType="INTEGER"/> |
|
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> |
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> |
|
</resultMap> |
|
|
|
<sql id = "baseSql"> |
|
id, task_id, task_name, group_id, process_id, priority, status , force_start , in_queue, create_time, update_time |
|
</sql> |
|
|
|
<select id="queryTaskGroupQueuePaging" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql"> |
|
</include> |
|
from t_ds_task_group_queue |
|
<where> |
|
<if test="groupId != 0"> |
|
and group_id = #{groupId} |
|
</if> |
|
</where> |
|
order by update_time desc, id desc |
|
</select> |
|
|
|
<select id="queryByStatus" resultMap="TaskGroupQueueMap" resultType="map"> |
|
select |
|
<include refid="baseSql"> |
|
</include> |
|
from t_ds_task_group_queue |
|
where status = #{status} |
|
</select> |
|
|
|
<delete id="deleteByTaskId"> |
|
delete from t_ds_task_group_queue |
|
where task_id = #{taskId} |
|
</delete> |
|
|
|
<update id="updateStatusByTaskId"> |
|
update t_ds_task_group_queue |
|
<set> |
|
<if test="status != 0"> |
|
status = #{status}, |
|
</if> |
|
</set> |
|
where task_id = #{taskId} |
|
</update> |
|
|
|
<update id="updateInQueue"> |
|
update t_ds_task_group_queue |
|
set in_queue = #{inQueue} |
|
where id = #{id} |
|
</update> |
|
|
|
<update id="updateForceStart"> |
|
update t_ds_task_group_queue |
|
set force_start = #{forceStart} |
|
where id = #{queueId} |
|
</update> |
|
|
|
<update id="modifyPriority"> |
|
update t_ds_task_group_queue |
|
set priority = #{priority} |
|
where id = #{queueId} |
|
</update> |
|
|
|
<update id="updateInQueueLimit1"> |
|
update t_ds_task_group_queue |
|
set in_queue = #{newValue} |
|
where group_id = #{groupId} and in_queue = #{oldValue} and status = #{status} order by priority desc limit 1 |
|
</update> |
|
|
|
<update id="updateInQueueCAS"> |
|
update t_ds_task_group_queue |
|
set in_queue = #{newValue} |
|
where id = #{id} and in_queue = #{oldValue} |
|
</update> |
|
|
|
<select id="queryHighPriorityTasks" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql" /> |
|
from t_ds_task_group_queue |
|
where group_id = #{groupId} and status = #{status} and priority > #{priority} |
|
</select> |
|
<select id="queryTheHighestPriorityTasks" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql" /> |
|
from t_ds_task_group_queue |
|
where group_id = #{groupId} and status = #{status} and in_queue = #{inQueue} and force_start = #{forceStart} |
|
order by priority desc |
|
limit 1 |
|
</select> |
|
|
|
<select id="queryByTaskId" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql" /> |
|
from t_ds_task_group_queue |
|
where task_id = #{taskId} |
|
</select> |
|
|
|
<select id="queryTaskGroupQueueByTaskGroupIdPaging" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
queue.id, |
|
queue.task_name, |
|
queue.group_id, |
|
queue.process_id, |
|
queue.priority, |
|
queue.in_queue, |
|
queue.status, |
|
queue.force_start, |
|
queue.create_time, |
|
queue.update_time, |
|
process.name as processInstanceName, |
|
p.name as projectName, |
|
p.code as projectCode |
|
from t_ds_task_group_queue queue |
|
left join t_ds_process_instance process on queue.process_id = process.id |
|
left join t_ds_process_definition p_f on process.process_definition_code = p_f.code |
|
and process.process_definition_version = p_f.version |
|
join t_ds_project as p on p_f.project_code = p.code |
|
<where> |
|
<if test="groupId != null and groupId != -1"> |
|
queue.group_id = #{groupId} |
|
</if> |
|
<if test="taskName != null and taskName != ''"> |
|
and task_name like concat('%', #{taskName}, '%') |
|
</if> |
|
<if test="processName != null and processName != ''"> |
|
and process.name like concat('%', #{processName}, '%') |
|
</if> |
|
<if test="status != null"> |
|
and queue.status =#{status} |
|
</if> |
|
<if test="projects != null and projects.size() > 0"> |
|
and p.code in |
|
<foreach collection="projects" index="index" item="i" open="(" separator="," close=")"> |
|
#{i.code} |
|
</foreach> |
|
</if> |
|
</where> |
|
order by queue.update_time desc |
|
</select> |
|
|
|
<delete id="deleteByTaskIds"> |
|
delete from t_ds_task_group_queue |
|
where task_id in |
|
<foreach collection="taskInstanceIds" index="index" item="i" open="(" separator="," close=")"> |
|
#{i} |
|
</foreach> |
|
</delete> |
|
|
|
<delete id="deleteByWorkflowInstanceId"> |
|
delete |
|
from t_ds_task_group_queue |
|
where process_id = #{workflowInstanceId} |
|
</delete> |
|
|
|
<delete id="deleteByWorkflowInstanceIds"> |
|
delete |
|
from t_ds_task_group_queue |
|
where process_id in |
|
<foreach collection="workflowInstanceIds" index="index" item="i" open="(" separator="," close=")"> |
|
#{i} |
|
</foreach> |
|
</delete> |
|
|
|
<delete id="deleteByTaskGroupIds"> |
|
delete |
|
from t_ds_task_group_queue |
|
where group_id in |
|
<foreach collection="taskGroupIds" index="index" item="i" open="(" separator="," close=")"> |
|
#{i} |
|
</foreach> |
|
</delete> |
|
|
|
<update id="updateTaskGroupPriorityByTaskInstanceId"> |
|
update t_ds_task_group_queue |
|
set priority = #{priority} |
|
where task_id = #{taskInstanceId} |
|
</update> |
|
|
|
<select id="queryAllInQueueTaskGroupQueueByGroupId" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql" /> |
|
from t_ds_task_group_queue |
|
where group_id = #{taskGroupId} and in_queue = #{inQueue} order by priority desc |
|
</select> |
|
|
|
<select id="queryAllTaskGroupQueueByInQueue" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql" /> |
|
from t_ds_task_group_queue |
|
where in_queue = #{inQueue} order by priority desc |
|
</select> |
|
|
|
<select id="queryInQueueTaskGroupQueue" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql"/> |
|
from t_ds_task_group_queue |
|
where in_queue = #{inQueue} |
|
and id > #{minTaskGroupQueueId} |
|
order by id asc |
|
limit #{limit} |
|
</select> |
|
|
|
<select id="queryByTaskInstanceId" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql" /> |
|
from t_ds_task_group_queue |
|
where task_id = #{taskInstanceId} |
|
</select> |
|
|
|
<select id="queryUsingTaskGroupQueueByGroupId" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql" /> |
|
from t_ds_task_group_queue |
|
where group_id = #{taskGroupId} and status = #{status} and force_start = #{forceStart} and in_queue = #{inQueue} |
|
</select> |
|
|
|
<select id="countUsingTaskGroupQueueByGroupId" resultType="java.lang.Integer"> |
|
select count(1) |
|
from t_ds_task_group_queue |
|
where group_id = #{taskGroupId} and status = #{status} and force_start = #{forceStart} and in_queue = #{inQueue} |
|
</select> |
|
|
|
<select id="queryWaitNotifyForceStartTaskGroupQueue" resultType="org.apache.dolphinscheduler.dao.entity.TaskGroupQueue"> |
|
select |
|
<include refid="baseSql"/> |
|
from t_ds_task_group_queue |
|
where in_queue = #{inQueue} |
|
and force_start = #{forceStart} |
|
and id > #{minTaskGroupQueueId} |
|
order by id asc |
|
limit #{limit} |
|
</select> |
|
|
|
</mapper>
|
|
|