From adcde32ba1e1d19ba0923205bedfbdc37556f2a8 Mon Sep 17 00:00:00 2001 From: liyong Date: Tue, 14 Dec 2021 23:29:06 +0800 Subject: [PATCH] 1 --- doc/note | 4 ++++ .../com/xxl/job/admin/core/scheduler/XxlJobScheduler.java | 2 +- .../com/xxl/job/admin/core/thread/JobFailMonitorHelper.java | 1 + .../com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java | 1 + .../main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java | 2 +- .../main/java/com/xxl/job/core/executor/XxlJobExecutor.java | 3 ++- .../src/main/java/com/xxl/job/core/server/EmbedServer.java | 2 +- .../java/com/xxl/job/core/thread/JobLogFileCleanThread.java | 2 +- .../java/com/xxl/job/core/thread/TriggerCallbackThread.java | 2 +- .../src/main/resources/application.properties | 3 ++- 10 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 doc/note diff --git a/doc/note b/doc/note new file mode 100644 index 00000000..bd7cec84 --- /dev/null +++ b/doc/note @@ -0,0 +1,4 @@ +源码仓库地址 +https://github.com/xuxueli/xxl-job/releases +http://gitee.com/xuxueli0323/xxl-job/releases + diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/scheduler/XxlJobScheduler.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/scheduler/XxlJobScheduler.java index 1ace9b0b..8d970c45 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/scheduler/XxlJobScheduler.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/scheduler/XxlJobScheduler.java @@ -44,7 +44,7 @@ public class XxlJobScheduler { // admin log report start //todo 开启 logrThread 统计报表相关 间隔一分钟 - //TODO 每次统计都是统计一天的 数据量过大时会影响效率 可以做成增量的 在获取结果时异步 统计 或者每次只统计1分钟的 + //TODO 每次统计都是统计一天的 没做大数据量的限制 过大时会影响效率 可以做成增量的 在获取结果时异步 统计 或者每次只统计1分钟的 JobLogReportHelper.getInstance().start(); // start-schedule ( depend on JobTriggerPoolHelper ) 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 83f21165..0a2a6900 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 @@ -44,6 +44,7 @@ public class JobFailMonitorHelper { // lock log //这里通过 依赖数据库事务 来进行避免 多节点时数据的重复操作问题 + //TODO 如果在这一步服务挂了 这批数据就会被下一个线程扫描为失败 int lockRet = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, 0, -1); if (lockRet < 1) { continue; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java index f1090db9..c4b14581 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java @@ -79,6 +79,7 @@ public class JobTriggerPoolHelper { // choose thread pool ThreadPoolExecutor triggerPool_ = fastTriggerPool; AtomicInteger jobTimeoutCount = jobTimeoutCountMap.get(jobId); + //慢任务 超过 10次 则调用单独的线程池 if (jobTimeoutCount!=null && jobTimeoutCount.get() > 10) { // job-timeout 10 times in 1 min triggerPool_ = slowTriggerPool; } diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java index 55f0245f..6990e651 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java @@ -127,7 +127,7 @@ public class ExecutorBizImpl implements ExecutorBiz { // executor block strategy if (jobThread != null) { - //TODO 阻塞处理策略 + //TODO 阻塞处理策略 注意点 这边阻塞策略是在客户端 实现的 如果路由策略 每次执行的节点不一样 就会导致重复执行 ExecutorBlockStrategyEnum blockStrategy = ExecutorBlockStrategyEnum.match(triggerParam.getExecutorBlockStrategy(), null); if (ExecutorBlockStrategyEnum.DISCARD_LATER == blockStrategy) { //丢弃后续调用 diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java b/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java index daba8cec..9c41e72e 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java @@ -154,6 +154,7 @@ public class XxlJobExecutor { ip = (ip!=null&&ip.trim().length()>0)?ip: IpUtil.getIp(); // generate address + //TODO 优先使用address if (address==null || address.trim().length()==0) { String ip_port_address = IpUtil.getIpPort(ip, port); // registry-address:default use address to registry , otherwise use ip:port if address is null address = "http://{ip_port}/".replace("{ip_port}", ip_port_address); @@ -217,7 +218,7 @@ public class XxlJobExecutor { throw new RuntimeException("xxl-job method-jobhandler return-classtype invalid, for[" + bean.getClass() + "#" + method.getName() + "] , " + "The correct method format like \" public ReturnT execute(String param) \" ."); }*/ - //TODO 设置访问权限 说明私有的方法也是支持的 demo待实践 + //TODO 设置访问权限 说明私有的方法也是支持的 executeMethod.setAccessible(true); // init and destroy diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java b/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java index 360a16c3..eb2a37d5 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java @@ -213,7 +213,7 @@ public class EmbedServer { KillParam killParam = GsonTool.fromJson(requestData, KillParam.class); return executorBiz.kill(killParam); } else if ("/log".equals(uri)) { - //TODO 查询日志 + //TODO 查询日志 注意 实时通过客户端查询日志 如果客户端是在容器中每次部署要注意下日志路径 LogParam logParam = GsonTool.fromJson(requestData, LogParam.class); return executorBiz.log(logParam); } else { diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobLogFileCleanThread.java b/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobLogFileCleanThread.java index ac4c227e..e0802080 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobLogFileCleanThread.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/thread/JobLogFileCleanThread.java @@ -34,7 +34,7 @@ public class JobLogFileCleanThread { */ public void start(final long logRetentionDays){ - // limit min value 最小值三天一清理 + // TDOD 注意点 最小值三天一清理 if (logRetentionDays < 3 ) { return; } diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java b/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java index 865b5be4..0d74968e 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java @@ -190,7 +190,7 @@ public class TriggerCallbackThread { } } if (!callbackRet) { - //TODO 请求服务端异常处理(写进日志文件) 如果部分成功部分失败 是不是重复劳动 + //TODO 请求服务端异常处理(写进日志文件) 如果部分成功部分失败 是不是重复劳动 目前不会有这种场景 appendFailCallbackFile(callbackParamList); } } diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties index 35601c5d..66403471 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties @@ -16,7 +16,8 @@ xxl.job.accessToken= ### xxl-job executor appname xxl.job.executor.appname=xxl-job-executor-sample ### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null -xxl.job.executor.address=1.1.1.1 +### 注册到服务端的地址 与 ip:port2选1 优先address +xxl.job.executor.address= ### xxl-job executor server-info xxl.job.executor.ip= xxl.job.executor.port=9999