Sfoglia il codice sorgente

定时任务加入测试的功能

Your Name 2 anni fa
parent
commit
0e1a61eead

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/task/TaskDto.java

@@ -33,6 +33,8 @@ public class TaskDto extends PageDto implements Serializable {
 
     private String statusCd = "0";
 
+    private String classBean;
+
 
     public String getTaskCron() {
         return taskCron;
@@ -123,4 +125,12 @@ public class TaskDto extends PageDto implements Serializable {
     public void setTaskTemplateDto(TaskTemplateDto taskTemplateDto) {
         this.taskTemplateDto = taskTemplateDto;
     }
+
+    public String getClassBean() {
+        return classBean;
+    }
+
+    public void setClassBean(String classBean) {
+        this.classBean = classBean;
+    }
 }

+ 74 - 77
java110-db/src/main/resources/mapper/dev/TaskV1ServiceDaoImplMapper.xml

@@ -5,102 +5,99 @@
 <mapper namespace="taskV1ServiceDaoImpl">
 
 
-
-
-
     <!-- 保存任务信息 add by wuxw 2018-07-03 -->
     <insert id="saveTaskInfo" parameterType="Map">
         insert into task(
-task_cron,task_name,state,template_id,task_id
-) values (
-#{taskCron},#{taskName},#{state},#{templateId},#{taskId}
-)
+        task_cron,task_name,state,template_id,task_id
+        ) values (
+        #{taskCron},#{taskName},#{state},#{templateId},#{taskId}
+        )
     </insert>
 
 
-
     <!-- 查询任务信息 add by wuxw 2018-07-03 -->
     <select id="getTaskInfo" parameterType="Map" resultType="Map">
-        select  t.task_cron,t.task_cron taskCron,t.task_name,t.task_name taskName,t.status_cd,t.status_cd statusCd,t.state,t.template_id,t.template_id templateId,t.task_id,t.task_id taskId 
-from task t 
-where 1 =1 
-<if test="taskCron !=null and taskCron != ''">
-   and t.task_cron= #{taskCron}
-</if> 
-<if test="taskName !=null and taskName != ''">
-   and t.task_name= #{taskName}
-</if> 
-<if test="statusCd !=null and statusCd != ''">
-   and t.status_cd= #{statusCd}
-</if> 
-<if test="state !=null and state != ''">
-   and t.state= #{state}
-</if> 
-<if test="templateId !=null and templateId != ''">
-   and t.template_id= #{templateId}
-</if> 
-<if test="taskId !=null and taskId != ''">
-   and t.task_id= #{taskId}
-</if> 
-order by t.create_time desc
-<if test="page != -1 and page != null ">
-   limit #{page}, #{row}
-</if> 
+        select t.task_cron,t.task_cron taskCron,t.task_name,t.task_name taskName,t.status_cd,t.status_cd
+        statusCd,t.state,t.template_id,t.template_id templateId,t.task_id,t.task_id taskId,tt.class_bean classBean
+        from task t
+        left join task_template tt on t.template_id = tt.template_id and tt.status_cd = '0'
+        where 1 =1
+        <if test="taskCron !=null and taskCron != ''">
+            and t.task_cron= #{taskCron}
+        </if>
+        <if test="taskName !=null and taskName != ''">
+            and t.task_name= #{taskName}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="templateId !=null and templateId != ''">
+            and t.template_id= #{templateId}
+        </if>
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
+        order by t.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
 
     </select>
 
 
-
-
     <!-- 修改任务信息 add by wuxw 2018-07-03 -->
     <update id="updateTaskInfo" parameterType="Map">
-        update  task t set t.status_cd = #{statusCd}
-<if test="newBId != null and newBId != ''">
-,t.b_id = #{newBId}
-</if> 
-<if test="taskCron !=null and taskCron != ''">
-, t.task_cron= #{taskCron}
-</if> 
-<if test="taskName !=null and taskName != ''">
-, t.task_name= #{taskName}
-</if> 
-<if test="state !=null and state != ''">
-, t.state= #{state}
-</if> 
-<if test="templateId !=null and templateId != ''">
-, t.template_id= #{templateId}
-</if> 
- where 1=1 <if test="taskId !=null and taskId != ''">
-and t.task_id= #{taskId}
-</if> 
+        update task t set t.status_cd = #{statusCd}
+        <if test="newBId != null and newBId != ''">
+            ,t.b_id = #{newBId}
+        </if>
+        <if test="taskCron !=null and taskCron != ''">
+            , t.task_cron= #{taskCron}
+        </if>
+        <if test="taskName !=null and taskName != ''">
+            , t.task_name= #{taskName}
+        </if>
+        <if test="state !=null and state != ''">
+            , t.state= #{state}
+        </if>
+        <if test="templateId !=null and templateId != ''">
+            , t.template_id= #{templateId}
+        </if>
+        where 1=1
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
 
     </update>
 
     <!-- 查询任务数量 add by wuxw 2018-07-03 -->
-     <select id="queryTasksCount" parameterType="Map" resultType="Map">
-        select  count(1) count 
-from task t 
-where 1 =1 
-<if test="taskCron !=null and taskCron != ''">
-   and t.task_cron= #{taskCron}
-</if> 
-<if test="taskName !=null and taskName != ''">
-   and t.task_name= #{taskName}
-</if> 
-<if test="statusCd !=null and statusCd != ''">
-   and t.status_cd= #{statusCd}
-</if> 
-<if test="state !=null and state != ''">
-   and t.state= #{state}
-</if> 
-<if test="templateId !=null and templateId != ''">
-   and t.template_id= #{templateId}
-</if> 
-<if test="taskId !=null and taskId != ''">
-   and t.task_id= #{taskId}
-</if> 
+    <select id="queryTasksCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from task t
+        where 1 =1
+        <if test="taskCron !=null and taskCron != ''">
+            and t.task_cron= #{taskCron}
+        </if>
+        <if test="taskName !=null and taskName != ''">
+            and t.task_name= #{taskName}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="templateId !=null and templateId != ''">
+            and t.template_id= #{templateId}
+        </if>
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
 
 
-     </select>
+    </select>
 
 </mapper>

+ 56 - 0
service-job/src/main/java/com/java110/job/cmd/job/RunJobCmd.java

@@ -0,0 +1,56 @@
+package com.java110.job.cmd.job;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.task.TaskDto;
+import com.java110.intf.dev.ITaskV1InnerServiceSMO;
+import com.java110.job.quartz.TaskSystemQuartz;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.factory.ApplicationContextFactory;
+import com.java110.utils.util.Assert;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * 手工运行job
+ */
+@Java110Cmd(serviceCode = "job.runJob")
+public class RunJobCmd extends Cmd {
+
+    @Autowired
+    private ITaskV1InnerServiceSMO taskV1InnerServiceSMOImpl;
+
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        Assert.hasKeyAndValue(reqJson, "taskId", "未包含任务ID");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        TaskDto taskDto = new TaskDto();
+        taskDto.setTaskId(reqJson.getString("taskId"));
+        List<TaskDto> taskDtos = taskV1InnerServiceSMOImpl.queryTasks(taskDto);
+
+        Assert.listOnlyOne(taskDtos,"任务不存在");
+
+
+
+        TaskSystemQuartz taskSystemQuartz = (TaskSystemQuartz) ApplicationContextFactory.getBean(taskDtos.get(0).getClassBean());
+        try {
+            taskSystemQuartz.startTask(taskDto);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new CmdException(e.getMessage());
+        }
+
+    }
+}