diff --git a/doc/db/tables_xxl_job.oracle.sql b/doc/db/tables_xxl_job.oracle.sql
new file mode 100644
index 00000000..6c540326
--- /dev/null
+++ b/doc/db/tables_xxl_job.oracle.sql
@@ -0,0 +1,196 @@
+-- oracle 11g 测试通过
+/*
+-- 清理脚本
+drop table xxl_job_info;
+drop table xxl_job_log;
+drop table xxl_job_log_report;
+drop table xxl_job_logglue;
+drop table xxl_job_registry;
+drop table xxl_job_group;
+drop table xxl_job_user;
+drop table xxl_job_lock;
+
+drop sequence SEQ_XXL_JOB_COMMON_ID;
+drop sequence SEQ_XXL_JOB_LOG_ID;
+*/
+
+create sequence SEQ_XXL_JOB_COMMON_ID
+ minvalue 10000001
+ maxvalue 2147483647
+ increment by 1
+ cache 20
+cycle;
+
+create sequence SEQ_XXL_JOB_LOG_ID
+ minvalue 10000001
+ maxvalue 99999999999999
+ increment by 1
+ cache 20
+cycle;
+
+create table xxl_job_info (
+ id number(11) not null, -- AUTO_INCREMENT
+ job_group number(11) not null,
+ job_desc varchar2(255) not null,
+ add_time date default null,
+ update_time date default null,
+ author varchar2(64) default null,
+ alarm_email varchar2(255) default null,
+ schedule_type varchar2(50) default 'NONE' not null,
+ schedule_conf varchar2(128) default null,
+ misfire_strategy varchar2(50) default 'DO_NOTHING' not null,
+ executor_route_strategy varchar2(50) default null,
+ executor_handler varchar2(255) default null,
+ executor_param varchar2(512) default null,
+ executor_block_strategy varchar2(50) default null,
+ executor_timeout number(11) default '0' not null,
+ executor_fail_retry_count number(11) default '0' not null,
+ glue_type varchar2(50) not null,
+ glue_source clob,
+ glue_remark varchar2(128) default null,
+ glue_updatetime date default null,
+ child_jobid varchar2(255) default null,
+ trigger_status number(4) default '0' not null,
+ trigger_last_time number(13) default '0' not null,
+ trigger_next_time number(13) default '0' not null,
+ primary key (id)
+);
+comment on column xxl_job_info.job_group is '执行器主键ID';
+comment on column xxl_job_info.author is '作者';
+comment on column xxl_job_info.alarm_email is '报警邮件';
+comment on column xxl_job_info.schedule_type is '调度类型';
+comment on column xxl_job_info.schedule_conf is '调度配置,值含义取决于调度类型';
+comment on column xxl_job_info.misfire_strategy is '调度过期策略';
+comment on column xxl_job_info.executor_route_strategy is '执行器路由策略';
+comment on column xxl_job_info.executor_handler is '执行器任务handler';
+comment on column xxl_job_info.executor_param is '执行器任务参数';
+comment on column xxl_job_info.executor_block_strategy is '阻塞处理策略';
+comment on column xxl_job_info.executor_timeout is '任务执行超时时间,单位秒';
+comment on column xxl_job_info.executor_fail_retry_count is '失败重试次数';
+comment on column xxl_job_info.glue_type is 'GLUE类型';
+comment on column xxl_job_info.glue_source is 'GLUE源代码';
+comment on column xxl_job_info.glue_remark is 'GLUE备注';
+comment on column xxl_job_info.glue_updatetime is 'GLUE更新时间';
+comment on column xxl_job_info.child_jobid is '子任务ID,多个逗号分隔';
+comment on column xxl_job_info.trigger_status is '调度状态:0-停止,1-运行';
+comment on column xxl_job_info.trigger_last_time is '上次调度时间';
+comment on column xxl_job_info.trigger_next_time is '下次调度时间';
+
+
+create table xxl_job_log (
+ id number(20) not null, -- AUTO_INCREMENT
+ job_group number(11) not null ,
+ job_id number(11) not null ,
+ executor_address varchar2(255) default null ,
+ executor_handler varchar2(255) default null ,
+ executor_param varchar2(512) default null ,
+ executor_sharding_param varchar2(20) default null ,
+ executor_fail_retry_count number(11) default '0' not null,
+ trigger_time date default null ,
+ trigger_code number(11) not null,
+ trigger_msg clob ,
+ handle_time date default null ,
+ handle_code number(11) not null,
+ handle_msg clob ,
+ alarm_status number(4) default '0' not null,
+ primary key (id)
+);
+create index i_trigger_time on xxl_job_log (trigger_time);
+create index i_handle_code on xxl_job_log (handle_code);
+comment on column xxl_job_log.job_group is '执行器主键ID';
+comment on column xxl_job_log.job_id is '任务,主键ID';
+comment on column xxl_job_log.executor_address is '执行器地址,本次执行的地址';
+comment on column xxl_job_log.executor_handler is '执行器任务handler';
+comment on column xxl_job_log.executor_param is '执行器任务参数';
+comment on column xxl_job_log.executor_sharding_param is '执行器任务分片参数,格式如 1/2';
+comment on column xxl_job_log.executor_fail_retry_count is '失败重试次数';
+comment on column xxl_job_log.trigger_time is '调度-时间';
+comment on column xxl_job_log.trigger_code is '调度-结果';
+comment on column xxl_job_log.trigger_msg is '调度-日志';
+comment on column xxl_job_log.handle_time is '执行-时间';
+comment on column xxl_job_log.handle_code is '执行-状态';
+comment on column xxl_job_log.handle_msg is '执行-日志';
+comment on column xxl_job_log.alarm_status is '告警状态:0-默认、1-无需告警、2-告警成功、3-告警失败';
+
+create table xxl_job_log_report (
+ id number(11) not null, -- AUTO_INCREMENT
+ trigger_day date default null,
+ running_count number(11) default '0' not null,
+ suc_count number(11) default '0' not null,
+ fail_count number(11) default '0' not null,
+ update_time date default null,
+ primary key (id)
+);
+create unique index i_trigger_day on xxl_job_log_report (trigger_day);
+comment on column xxl_job_log_report.trigger_day is '调度-时间' ;
+comment on column xxl_job_log_report.running_count is '运行中-日志数量' ;
+comment on column xxl_job_log_report.suc_count is '执行成功-日志数量' ;
+comment on column xxl_job_log_report.fail_count is '执行失败-日志数量' ;
+
+create table xxl_job_logglue (
+ id number(11) not null, -- AUTO_INCREMENT
+ job_id number(11) not null,
+ glue_type varchar2(50) default null,
+ glue_source clob,
+ glue_remark varchar2(128) not null,
+ add_time date default null,
+ update_time date default null,
+ primary key (id)
+);
+comment on column xxl_job_logglue.job_id is '任务,主键ID';
+comment on column xxl_job_logglue.glue_type is 'GLUE类型';
+comment on column xxl_job_logglue.glue_source is 'GLUE源代码';
+comment on column xxl_job_logglue.glue_remark is 'GLUE备注';
+
+create table xxl_job_registry (
+ id number(11) not null, -- AUTO_INCREMENT
+ registry_group varchar2(50) not null,
+ registry_key varchar2(255) not null,
+ registry_value varchar2(255) not null,
+ update_time date default null,
+ primary key (id)
+);
+create index i_g_k_v on xxl_job_registry(registry_group, registry_key, registry_value);
+
+create table xxl_job_group (
+ id number(11) not null, -- AUTO_INCREMENT
+ app_name varchar2(64) not null,
+ title varchar2(12) not null,
+ address_type number(4) default '0' not null,
+ address_list clob,
+ update_time date default null,
+ primary key (id)
+);
+comment on column xxl_job_group.app_name is '执行器AppName';
+comment on column xxl_job_group.title is '执行器名称';
+comment on column xxl_job_group.address_type is '执行器地址类型:0=自动注册、1=手动录入';
+comment on column xxl_job_group.address_list is '执行器地址列表,多地址逗号分隔';
+
+create table xxl_job_user (
+ id number(11) not null, -- AUTO_INCREMENT
+ username varchar2(50) not null,
+ password varchar2(50) not null,
+ role number(4) not null,
+ permission varchar2(255) default null,
+ primary key (id)
+);
+create unique index i_username on xxl_job_user(username);
+comment on column xxl_job_user.username is '账号';
+comment on column xxl_job_user.password is '密码';
+comment on column xxl_job_user.role is '角色:0-普通用户、1-管理员';
+comment on column xxl_job_user.permission is '权限:执行器ID列表,多个逗号分割';
+
+create table xxl_job_lock (
+ lock_name varchar2(50) not null,
+ primary key (lock_name)
+);
+comment on column xxl_job_lock.lock_name is '锁名称';
+
+
+-- 初始化数据
+insert into xxl_job_group(id, app_name, title, address_type, address_list, update_time) values (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss') );
+insert into xxl_job_info(id, job_group, job_desc, add_time, update_time, author, alarm_email, schedule_type, schedule_conf, misfire_strategy, executor_route_strategy, executor_handler, executor_param, executor_block_strategy, executor_timeout, executor_fail_retry_count, glue_type, glue_source, glue_remark, glue_updatetime, child_jobid) values (1, 1, '测试任务1', to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss'), to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss'), 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', to_date('2018-11-03 22:21:31', 'yyyy-mm-dd hh24:mi:ss'), '');
+insert into xxl_job_user(id, username, password, role, permission) values (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
+insert into xxl_job_lock ( lock_name) values ( 'schedule_lock');
+
+commit;
diff --git a/pom.xml b/pom.xml
index 4b068b16..960e29d4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,6 +42,8 @@
3.2.1
3.4.0
3.0.1
+
+ 19.3.0.0
@@ -140,5 +142,4 @@
-
\ No newline at end of file
diff --git a/xxl-job-admin/pom.xml b/xxl-job-admin/pom.xml
index b10941f6..a0e79b7f 100644
--- a/xxl-job-admin/pom.xml
+++ b/xxl-job-admin/pom.xml
@@ -1,113 +1,126 @@
- 4.0.0
-
- com.xuxueli
- xxl-job
- 2.3.1
-
- xxl-job-admin
- jar
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+
+ com.xuxueli
+ xxl-job
+ 2.3.1
+
+ xxl-job-admin
+ jar
-
-
-
- org.springframework.boot
- spring-boot-starter-parent
- ${spring-boot.version}
- pom
- import
-
-
-
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ ${spring-boot.version}
+ pom
+ import
+
+
+
-
+
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
-
-
- org.springframework.boot
- spring-boot-starter-freemarker
-
+
+
+ org.springframework.boot
+ spring-boot-starter-freemarker
+
-
-
- org.springframework.boot
- spring-boot-starter-mail
-
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
-
-
- org.springframework.boot
- spring-boot-starter-actuator
-
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
-
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
- ${mybatis-spring-boot-starter.version}
-
-
-
- mysql
- mysql-connector-java
- ${mysql-connector-java.version}
-
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ ${mybatis-spring-boot-starter.version}
+
+
+
+
+
+ com.oracle.ojdbc
+ ojdbc8
+ ${jdbc.oracle.version}
+
+
+ com.oracle.ojdbc
+ orai18n
+ ${jdbc.oracle.version}
+
-
-
- com.xuxueli
- xxl-job-core
- ${project.parent.version}
-
+
+
+ com.xuxueli
+ xxl-job-core
+ ${project.parent.version}
+
-
+
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
- ${spring-boot.version}
-
-
-
- repackage
-
-
-
-
-
-
- com.spotify
- docker-maven-plugin
- 0.4.13
-
-
- ${project.artifactId}:${project.version}
- ${project.basedir}
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
-
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+
+
+ repackage
+
+
+
+
+
+
+ com.spotify
+ docker-maven-plugin
+ 0.4.13
+
+
+ ${project.artifactId}:${project.version}
+ ${project.basedir}
+
+
+ /
+ ${project.build.directory}
+ ${project.build.finalName}.jar
+
+
+
+
+
+
diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java
index 2387a0c4..712e9c60 100644
--- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java
+++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java
@@ -5,10 +5,7 @@ import com.xxl.job.admin.core.model.XxlJobLogReport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.TimeUnit;
/**
@@ -68,11 +65,16 @@ public class JobLogReportHelper {
xxlJobLogReport.setSucCount(0);
xxlJobLogReport.setFailCount(0);
+ // triggerCountMap
Map triggerCountMap = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findLogReport(todayFrom, todayTo);
- if (triggerCountMap!=null && triggerCountMap.size()>0) {
- int triggerDayCount = triggerCountMap.containsKey("triggerDayCount")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCount"))):0;
- int triggerDayCountRunning = triggerCountMap.containsKey("triggerDayCountRunning")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountRunning"))):0;
- int triggerDayCountSuc = triggerCountMap.containsKey("triggerDayCountSuc")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountSuc"))):0;
+ // Ignore the case of 'key'
+ TreeMap ignoreKeyCaseMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+ ignoreKeyCaseMap.putAll(triggerCountMap);
+
+ if (ignoreKeyCaseMap.size() > 0) {
+ int triggerDayCount = ignoreKeyCaseMap.containsKey("triggerDayCount") ? Integer.parseInt(String.valueOf(ignoreKeyCaseMap.get("triggerDayCount"))) : 0;
+ int triggerDayCountRunning = ignoreKeyCaseMap.containsKey("triggerDayCountRunning") ? Integer.parseInt(String.valueOf(ignoreKeyCaseMap.get("triggerDayCountRunning"))) : 0;
+ int triggerDayCountSuc = ignoreKeyCaseMap.containsKey("triggerDayCountSuc") ? Integer.parseInt(String.valueOf(ignoreKeyCaseMap.get("triggerDayCountSuc"))) : 0;
int triggerDayCountFail = triggerDayCount - triggerDayCountRunning - triggerDayCountSuc;
xxlJobLogReport.setRunningCount(triggerDayCountRunning);
diff --git a/xxl-job-admin/src/main/resources/application.properties b/xxl-job-admin/src/main/resources/application.properties
index 8727b6c7..2e3298a6 100644
--- a/xxl-job-admin/src/main/resources/application.properties
+++ b/xxl-job-admin/src/main/resources/application.properties
@@ -18,15 +18,22 @@ spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.##########
-### mybatis
+### mybatis oracle
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model
+mybatis.configuration.jdbc-type-for-null=null
-### xxl-job, datasource
-spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
+### xxl-job, datasource mysql
+#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
+#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+#spring.datasource.username=dms2
+#spring.datasource.password=qw1112
+
+### xxl-job, datasource oracle
+spring.datasource.url=jdbc:oracle:thin:@//192.168.11.40:1521/crms
+spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.username=root
-spring.datasource.password=root_pwd
-spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.password=123456
### datasource-pool
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
@@ -37,7 +44,10 @@ spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=10000
-spring.datasource.hikari.connection-test-query=SELECT 1
+# MYSQL
+#spring.datasource.hikari.connection-test-query=SELECT 1 FROM DUAL
+# ORACLE
+spring.datasource.hikari.connection-test-query=SELECT 1 FROM DUAL
spring.datasource.hikari.validation-timeout=1000
### xxl-job, email
diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
index 87299f88..7b3b0899 100644
--- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
+++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
@@ -1,14 +1,14 @@
-
-
+
-
+
@@ -23,29 +23,32 @@
-
- INSERT INTO xxl_job_group ( `app_name`, `title`, `address_type`, `address_list`, `update_time`)
- values ( #{appname}, #{title}, #{addressType}, #{addressList}, #{updateTime} );
+
+
+ select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
+
+ INSERT INTO xxl_job_group (id, app_name, title, address_type, address_list, update_time)
+ values (#{id}, #{appname}, #{title}, #{addressType}, #{addressList, jdbcType=CLOB, javaType=java.lang.String}, #{updateTime} )
UPDATE xxl_job_group
- SET `app_name` = #{appname},
- `title` = #{title},
- `address_type` = #{addressType},
- `address_list` = #{addressList},
- `update_time` = #{updateTime}
+ SET app_name = #{appname},
+ title = #{title},
+ address_type = #{addressType},
+ address_list = #{addressList, jdbcType=CLOB, javaType=java.lang.String},
+ update_time = #{updateTime}
WHERE id = #{id}
@@ -56,13 +59,17 @@
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
index 4155f179..4cd4950b 100644
--- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
+++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
@@ -17,11 +17,11 @@
-
+
-
+
@@ -45,8 +45,12 @@
+ select * from (
+ select * from (
+ select A.*, rownum rn from (
+
SELECT
- FROM xxl_job_log AS t
+ FROM xxl_job_log t
AND t.job_group = #{jobGroup}
@@ -75,12 +79,15 @@
ORDER BY t.trigger_time DESC
- LIMIT #{offset}, #{pagesize}
+
+ ) A
+ ) where rn ]]> #{offset}
+ ) where rn #{offset} + #{pagesize}
SELECT count(1)
- FROM xxl_job_log AS t
+ FROM xxl_job_log t
AND t.job_group = #{jobGroup}
@@ -112,25 +119,30 @@
SELECT
- FROM xxl_job_log AS t
+ FROM xxl_job_log t
WHERE t.id = #{id}
-
+
+
+ select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
+
INSERT INTO xxl_job_log (
- `job_group`,
- `job_id`,
- `trigger_time`,
- `trigger_code`,
- `handle_code`
+ id,
+ job_group,
+ job_id,
+ trigger_time,
+ trigger_code,
+ handle_code
) VALUES (
+ #{id},
#{jobGroup},
#{jobId},
#{triggerTime},
#{triggerCode},
#{handleCode}
- );
+ )
@@ -139,24 +151,24 @@
UPDATE xxl_job_log
SET
- `trigger_time`= #{triggerTime},
- `trigger_code`= #{triggerCode},
- `trigger_msg`= #{triggerMsg},
- `executor_address`= #{executorAddress},
- `executor_handler`=#{executorHandler},
- `executor_param`= #{executorParam},
- `executor_sharding_param`= #{executorShardingParam},
- `executor_fail_retry_count`= #{executorFailRetryCount}
- WHERE `id`= #{id}
+ trigger_time= #{triggerTime},
+ trigger_code= #{triggerCode},
+ trigger_msg= #{triggerMsg, jdbcType=CLOB, javaType=java.lang.String},
+ executor_address= #{executorAddress},
+ executor_handler=#{executorHandler},
+ executor_param= #{executorParam},
+ executor_sharding_param= #{executorShardingParam},
+ executor_fail_retry_count= #{executorFailRetryCount}
+ WHERE id= #{id}
UPDATE xxl_job_log
SET
- `handle_time`= #{handleTime},
- `handle_code`= #{handleCode},
- `handle_msg`= #{handleMsg}
- WHERE `id`= #{id}
+ handle_time= #{handleTime},
+ handle_code= #{handleCode},
+ handle_msg= #{handleMsg, jdbcType=CLOB, javaType=java.lang.String}
+ WHERE id= #{id}
@@ -168,8 +180,8 @@
SELECT
DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay,
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
+ SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) triggerDayCountRunning,
+ SUM(CASE WHEN handle_code = 200 then 1 else 0 end) triggerDayCountSuc
FROM xxl_job_log
WHERE trigger_time BETWEEN #{from} and #{to}
GROUP BY triggerDay
@@ -179,13 +191,16 @@
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
+ SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) triggerDayCountRunning,
+ SUM(CASE WHEN handle_code = 200 then 1 else 0 end) triggerDayCountSuc
FROM xxl_job_log
WHERE trigger_time BETWEEN #{from} and #{to}
+ select * from (
+ select A.*, rownum rn from (
+
SELECT id FROM xxl_job_log
@@ -200,8 +215,8 @@
AND id NOT in(
SELECT id FROM(
- SELECT id FROM xxl_job_log AS t
-
+ SELECT id, rownum rn FROM xxl_job_log t
+
AND t.job_group = #{jobGroup}
@@ -210,13 +225,14 @@
ORDER BY t.trigger_time desc
- LIMIT 0, #{clearBeforeNum}
- ) t1
+ ) where rn #{limit}
)
order by id asc
- LIMIT #{pagesize}
+
+ ) A
+ ) where rn #{pagesize}
@@ -228,22 +244,27 @@
- SELECT id FROM `xxl_job_log`
- WHERE !(
+ select * from (
+ select A.*, rownum rn from (
+
+ 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
+ AND alarm_status = 0
ORDER BY id ASC
- LIMIT #{pagesize}
+
+ ) A
+ ) where rn #{pagesize}
UPDATE xxl_job_log
SET
- `alarm_status` = #{newAlarmStatus}
- WHERE `id`= #{logId} AND `alarm_status` = #{oldAlarmStatus}
+ alarm_status = #{newAlarmStatus}
+ WHERE id= #{logId} AND alarm_status = #{oldAlarmStatus}
@@ -256,17 +277,17 @@
t.trigger_code = 200
AND t.handle_code = 0
AND t.trigger_time #{losedTime}
- AND t2.id IS NULL;
+ AND t2.id IS NULL
diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml
index 579d5f39..b042918b 100644
--- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml
+++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml
@@ -19,18 +19,23 @@
t.fail_count
-
+
+
+ select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
+
INSERT INTO xxl_job_log_report (
- `trigger_day`,
- `running_count`,
- `suc_count`,
- `fail_count`
+ id,
+ trigger_day,
+ running_count,
+ suc_count,
+ fail_count
) VALUES (
+ #{id},
#{triggerDay},
#{runningCount},
#{sucCount},
#{failCount}
- );
+ )
@@ -38,15 +43,15 @@
UPDATE xxl_job_log_report
- SET `running_count` = #{runningCount},
- `suc_count` = #{sucCount},
- `fail_count` = #{failCount}
- WHERE `trigger_day` = #{triggerDay}
+ SET running_count = #{runningCount},
+ suc_count = #{sucCount},
+ fail_count = #{failCount}
+ WHERE trigger_day = #{triggerDay}
SELECT
- FROM xxl_job_log_report AS t
+ FROM xxl_job_log_report t
WHERE t.trigger_day between #{triggerDayFrom} and #{triggerDayTo}
ORDER BY t.trigger_day ASC
@@ -56,7 +61,7 @@
SUM(running_count) running_count,
SUM(suc_count) suc_count,
SUM(fail_count) fail_count
- FROM xxl_job_log_report AS t
+ FROM xxl_job_log_report t
\ No newline at end of file
diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml
index 4cae667a..60c95c89 100644
--- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml
+++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml
@@ -21,8 +21,8 @@
SELECT t.id
- FROM xxl_job_registry AS t
- WHERE t.update_time DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)
+ FROM xxl_job_registry t
+ WHERE t.update_time #{nowTime} - INTERVAL '${timeout}' SECOND
@@ -35,21 +35,24 @@
SELECT
- FROM xxl_job_registry AS t
- WHERE t.update_time ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)
+ FROM xxl_job_registry t
+ WHERE t.update_time ]]> #{nowTime} - INTERVAL '${timeout}' SECOND
-
+
UPDATE xxl_job_registry
- SET `update_time` = #{updateTime}
- WHERE `registry_group` = #{registryGroup}
- AND `registry_key` = #{registryKey}
- AND `registry_value` = #{registryValue}
+ SET update_time = #{updateTime}
+ WHERE registry_group = #{registryGroup}
+ AND registry_key = #{registryKey}
+ AND registry_value = #{registryValue}
-
- INSERT INTO xxl_job_registry( `registry_group` , `registry_key` , `registry_value`, `update_time`)
- VALUES( #{registryGroup} , #{registryKey} , #{registryValue}, #{updateTime})
+
+
+ select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
+
+ INSERT INTO xxl_job_registry(id, registry_group , registry_key , registry_value, update_time)
+ VALUES(#{id}, #{registryGroup} , #{registryKey} , #{registryValue}, #{updateTime})
diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml
index 9e09b4aa..f82c152a 100644
--- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml
+++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml
@@ -20,8 +20,12 @@
+ select * from (
+ select * from (
+ select A.*, rownum rn from (
+
SELECT
- FROM xxl_job_user AS t
+ FROM xxl_job_user t
AND t.username like CONCAT(CONCAT('%', #{username}), '%')
@@ -31,12 +35,15 @@
ORDER BY username ASC
- LIMIT #{offset}, #{pagesize}
+
+ ) A
+ ) where rn ]]> #{offset}
+ ) where rn #{offset} + #{pagesize}
SELECT count(1)
- FROM xxl_job_user AS t
+ FROM xxl_job_user t
AND t.username like CONCAT(CONCAT('%', #{username}), '%')
@@ -49,22 +56,27 @@
SELECT
- FROM xxl_job_user AS t
+ FROM xxl_job_user t
WHERE t.username = #{username}
-
+
+
+ select SEQ_XXL_JOB_LOG_ID.NEXTVAL id from dual
+
INSERT INTO xxl_job_user (
+ id,
username,
password,
role,
permission
) VALUES (
+ #{id},
#{username},
#{password},
#{role},
#{permission}
- );
+ )