From 86acbcd77702bcec415c9ad484445657a72c556a Mon Sep 17 00:00:00 2001 From: chuan Date: Sat, 24 Feb 2018 14:21:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E5=B1=9E=E6=80=A7=EF=BC=8C=E8=B6=85=E6=97=B6=E5=90=8E?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/db/tables_xxl_job.sql | 1 + .../xxl/job/admin/core/model/XxlJobInfo.java | 11 ++++++ .../core/thread/JobFailMonitorHelper.java | 1 + .../job/admin/core/trigger/XxlJobTrigger.java | 3 ++ .../main/resources/i18n/message.properties | 2 ++ .../main/resources/i18n/message_en.properties | 2 ++ .../mybatis-mapper/XxlJobInfoMapper.xml | 35 +++++++++++-------- .../template/jobinfo/jobinfo.index.ftl | 5 +++ .../main/webapp/static/js/jobinfo.index.1.js | 1 + .../main/webapp/static/js/joblog.index.1.js | 2 ++ .../com/xxl/job/core/biz/model/ReturnT.java | 3 ++ .../xxl/job/core/biz/model/TriggerParam.java | 10 ++++++ .../com/xxl/job/core/handler/IJobHandler.java | 2 ++ .../com/xxl/job/core/thread/JobThread.java | 29 +++++++++++++-- 14 files changed, 89 insertions(+), 18 deletions(-) diff --git a/doc/db/tables_xxl_job.sql b/doc/db/tables_xxl_job.sql index ed328959..606eb992 100644 --- a/doc/db/tables_xxl_job.sql +++ b/doc/db/tables_xxl_job.sql @@ -158,6 +158,7 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` ( `update_time` datetime DEFAULT NULL, `author` varchar(64) DEFAULT NULL COMMENT '作者', `alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件', + `execute_timeout` int(11) NOT NULL DEFAULT 0 COMMENT '任务执行超时时间', `executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略', `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler', `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数', diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java index 51847ac1..01c5227f 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java @@ -36,6 +36,17 @@ public class XxlJobInfo { // copy from quartz private String jobStatus; // 任务状态 【base on quartz】 + private int executeTimeout; // 任务最多执行时间,超时后报警 + + public int getExecuteTimeout() { + return executeTimeout; + } + + public void setExecuteTimeout(int executeTimeout) { + this.executeTimeout = executeTimeout; + } + + public int getId() { return id; } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java index 66a77346..1faa3984 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java @@ -63,6 +63,7 @@ public class JobFailMonitorHelper { logger.info(">>>>>>>>>>> job monitor, job success, JobLogId:{}", jobLogId); } else if (IJobHandler.FAIL.getCode() == log.getTriggerCode() || IJobHandler.FAIL.getCode() == log.getHandleCode() + || IJobHandler.TIMEOUT.getCode() == log.getHandleCode() || IJobHandler.FAIL_RETRY.getCode() == log.getHandleCode() ) { // job fail, failAlarm(log); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java index a03d393c..76811ec2 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java @@ -96,6 +96,8 @@ public class XxlJobTrigger { triggerParam.setGlueUpdatetime(jobInfo.getGlueUpdatetime().getTime()); triggerParam.setBroadcastIndex(i); triggerParam.setBroadcastTotal(addressList.size()); // update02 + // 执行超时时间 + triggerParam.setExecuteTimeout(jobInfo.getExecuteTimeout()); // 4.2、trigger-run (route run / trigger remote executor) triggerResult = runExecutor(triggerParam, address); // update03 @@ -164,6 +166,7 @@ public class XxlJobTrigger { triggerParam.setGlueUpdatetime(jobInfo.getGlueUpdatetime().getTime()); triggerParam.setBroadcastIndex(0); triggerParam.setBroadcastTotal(1); + triggerParam.setExecuteTimeout(jobInfo.getExecuteTimeout()); // 4.2、trigger-run (route run / trigger remote executor) triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); diff --git a/xxl-job-admin/src/main/resources/i18n/message.properties b/xxl-job-admin/src/main/resources/i18n/message.properties index 66c7aa9d..3972eafa 100644 --- a/xxl-job-admin/src/main/resources/i18n/message.properties +++ b/xxl-job-admin/src/main/resources/i18n/message.properties @@ -107,6 +107,7 @@ jobinfo_field_gluetype=运行模式 jobinfo_field_executorparam=任务参数 jobinfo_field_cron_unvalid=Cron格式非法 jobinfo_field_author=负责人 +jobinfo_field_timeout=最大执行时间 jobinfo_field_alarmemail=报警邮件 jobinfo_field_alarmemail_placeholder=请输入报警邮件,多个邮件地址则逗号分隔 jobinfo_field_executorRouteStrategy=路由策略 @@ -157,6 +158,7 @@ joblog_clean_type_9=清理所有日志数据 joblog_clean_type_unvalid=清理类型参数异常 joblog_handleCode_200=成功 joblog_handleCode_500=失败 +joblog_handleCode_400=超时 joblog_handleCode_501=失败重试 joblog_kill_log=终止任务 joblog_kill_log_limit=调度失败,无法终止日志 diff --git a/xxl-job-admin/src/main/resources/i18n/message_en.properties b/xxl-job-admin/src/main/resources/i18n/message_en.properties index 9a8d14bd..e66b36d7 100644 --- a/xxl-job-admin/src/main/resources/i18n/message_en.properties +++ b/xxl-job-admin/src/main/resources/i18n/message_en.properties @@ -103,6 +103,7 @@ jobinfo_field_update=Edit Job jobinfo_field_id=Job ID jobinfo_field_jobgroup=Executor jobinfo_field_jobdesc=Job description +jobinfo_field_timeout=Max execute time jobinfo_field_gluetype=GLUE Type jobinfo_field_executorparam=Param jobinfo_field_cron_unvalid=The Cron is illegal @@ -157,6 +158,7 @@ joblog_clean_type_9=Clean up all log data joblog_clean_type_unvalid=Clean type is illegal joblog_handleCode_200=Success joblog_handleCode_500=Fail +joblog_handleCode_400=Timeout joblog_handleCode_501=Fail retry joblog_kill_log=Kill Job joblog_kill_log_limit=Trigger Fail, can not kill job diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml index b1fc6302..517e0697 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml @@ -1,18 +1,18 @@ - - + - + - + - + @@ -21,11 +21,12 @@ - + + @@ -48,9 +49,10 @@ t.glue_source, t.glue_remark, t.glue_updatetime, + t.execute_timeout, t.child_jobid - + - +