xueli.xue 9 gadus atpakaļ
vecāks
revīzija
23423855fc
100 mainītis faili ar 831 papildinājumiem un 652 dzēšanām
  1. 22 4
      README.md
  2. 0 11
      branch-dianping/README.md
  3. 0 10
      branch-dianping/dianping-job-client-demo/src/main/resources/log4j.properties
  4. 0 10
      branch-dianping/dianping-job-web/src/main/resources/log4j.properties
  5. 0 76
      branch-dianping/dianping-job-web/src/main/webapp/WEB-INF/template/job/help.ftl
  6. 0 168
      branch-dianping/doc/db/tables_mysql.sql
  7. 0 33
      branch-dianping/pom.xml
  8. 0 0
      doc/db/tables_mysql-for-dianping-wed.sql
  9. 4 1
      pom.xml
  10. 32 0
      xxl-job-admin/.classpath
  11. 1 0
      xxl-job-admin/.gitignore
  12. 42 0
      xxl-job-admin/.project
  13. 13 0
      xxl-job-admin/.settings/.jsdtscope
  14. 2 0
      xxl-job-admin/.settings/org.eclipse.core.resources.prefs
  15. 8 0
      xxl-job-admin/.settings/org.eclipse.jdt.core.prefs
  16. 4 0
      xxl-job-admin/.settings/org.eclipse.m2e.core.prefs
  17. 13 0
      xxl-job-admin/.settings/org.eclipse.wst.common.component
  18. 7 0
      xxl-job-admin/.settings/org.eclipse.wst.common.project.facet.core.xml
  19. 1 0
      xxl-job-admin/.settings/org.eclipse.wst.jsdt.ui.superType.container
  20. 1 0
      xxl-job-admin/.settings/org.eclipse.wst.jsdt.ui.superType.name
  21. 2 0
      xxl-job-admin/.settings/org.eclipse.wst.validation.prefs
  22. 14 6
      xxl-job-admin/pom.xml
  23. 5 5
      xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java
  24. 1 1
      xxl-job-admin/src/main/java/com/xxl/job/core/model/ReturnT.java
  25. 4 4
      xxl-job-admin/src/main/java/com/xxl/job/core/model/XxlJobLog.java
  26. 1 1
      xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java
  27. 1 1
      xxl-job-admin/src/main/java/com/xxl/job/service/ITriggerService.java
  28. 3 3
      xxl-job-admin/src/main/java/com/xxl/job/service/impl/TriggerServiceImpl.java
  29. 12 12
      xxl-job-admin/src/main/java/com/xxl/job/service/job/HttpJobBean.java
  30. 1 6
      xxl-job-admin/src/main/resources/applicationcontext-base.xml
  31. 1 2
      xxl-job-admin/src/main/resources/applicationcontext-database.xml
  32. 3 24
      xxl-job-admin/src/main/resources/applicationcontext-trigger-db.xml
  33. 3 3
      xxl-job-admin/src/main/resources/applicationcontext-trigger-local.xml
  34. 0 6
      xxl-job-admin/src/main/resources/applicationcontext-tx.xml
  35. 4 4
      xxl-job-admin/src/main/resources/log4j.properties
  36. 1 0
      xxl-job-admin/src/main/resources/quartz.properties
  37. 15 14
      xxl-job-admin/src/main/resources/springmvc-context.xml
  38. 8 87
      xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl
  39. 28 5
      xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl
  40. 34 34
      xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl
  41. 4 0
      xxl-job-admin/src/main/webapp/WEB-INF/web.xml
  42. 94 46
      xxl-job-admin/src/main/webapp/static/js/job.index.1.js
  43. 32 0
      xxl-job-client-demo/.classpath
  44. 1 0
      xxl-job-client-demo/.gitignore
  45. 42 0
      xxl-job-client-demo/.project
  46. 13 0
      xxl-job-client-demo/.settings/.jsdtscope
  47. 2 0
      xxl-job-client-demo/.settings/org.eclipse.core.resources.prefs
  48. 8 0
      xxl-job-client-demo/.settings/org.eclipse.jdt.core.prefs
  49. 4 0
      xxl-job-client-demo/.settings/org.eclipse.m2e.core.prefs
  50. 13 0
      xxl-job-client-demo/.settings/org.eclipse.wst.common.component
  51. 7 0
      xxl-job-client-demo/.settings/org.eclipse.wst.common.project.facet.core.xml
  52. 1 0
      xxl-job-client-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container
  53. 1 0
      xxl-job-client-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name
  54. 2 0
      xxl-job-client-demo/.settings/org.eclipse.wst.validation.prefs
  55. 9 10
      xxl-job-client-demo/pom.xml
  56. 3 3
      xxl-job-client-demo/src/main/java/com/xxl/job/service/handler/DemoJobHandler.java
  57. 1 2
      xxl-job-client-demo/src/main/resources/applicationcontext-base.xml
  58. 10 0
      xxl-job-client-demo/src/main/resources/log4j.properties
  59. 10 7
      xxl-job-client-demo/src/main/webapp/WEB-INF/web.xml
  60. 0 0
      xxl-job-client-demo/src/main/webapp/index.html
  61. 27 0
      xxl-job-client/.classpath
  62. 1 0
      xxl-job-client/.gitignore
  63. 36 0
      xxl-job-client/.project
  64. 2 0
      xxl-job-client/.settings/org.eclipse.core.resources.prefs
  65. 8 0
      xxl-job-client/.settings/org.eclipse.jdt.core.prefs
  66. 4 0
      xxl-job-client/.settings/org.eclipse.m2e.core.prefs
  67. 5 0
      xxl-job-client/.settings/org.eclipse.wst.common.component
  68. 5 0
      xxl-job-client/.settings/org.eclipse.wst.common.project.facet.core.xml
  69. 2 0
      xxl-job-client/.settings/org.eclipse.wst.validation.prefs
  70. 5 7
      xxl-job-client/pom.xml
  71. 9 8
      xxl-job-client/src/main/java/com/xxl/job/client/handler/HandlerRepository.java
  72. 1 1
      xxl-job-client/src/main/java/com/xxl/job/client/handler/IJobHandler.java
  73. 5 4
      xxl-job-client/src/main/java/com/xxl/job/client/netcom/http/XxlJobServlet.java
  74. 1 1
      xxl-job-client/src/main/java/com/xxl/job/client/util/HttpUtil.java
  75. 32 0
      xxl-job-simple/.classpath
  76. 1 0
      xxl-job-simple/.gitignore
  77. 42 0
      xxl-job-simple/.project
  78. 13 0
      xxl-job-simple/.settings/.jsdtscope
  79. 3 0
      xxl-job-simple/.settings/org.eclipse.core.resources.prefs
  80. 8 0
      xxl-job-simple/.settings/org.eclipse.jdt.core.prefs
  81. 4 0
      xxl-job-simple/.settings/org.eclipse.m2e.core.prefs
  82. 10 0
      xxl-job-simple/.settings/org.eclipse.wst.common.component
  83. 7 0
      xxl-job-simple/.settings/org.eclipse.wst.common.project.facet.core.xml
  84. 1 0
      xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.container
  85. 1 0
      xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.name
  86. 2 0
      xxl-job-simple/.settings/org.eclipse.wst.validation.prefs
  87. 6 22
      xxl-job-simple/pom.xml
  88. 1 2
      xxl-job-simple/src/main/java/com/xxl/controller/IndexController.java
  89. 0 0
      xxl-job-simple/src/main/java/com/xxl/quartz/DynamicSchedulerUtil.java
  90. 0 0
      xxl-job-simple/src/main/java/com/xxl/quartz/ReturnT.java
  91. 0 0
      xxl-job-simple/src/main/java/com/xxl/service/ITriggerService.java
  92. 0 0
      xxl-job-simple/src/main/java/com/xxl/service/impl/TriggerServiceImpl.java
  93. 0 0
      xxl-job-simple/src/main/java/com/xxl/service/job/JobDetailDemo.java
  94. 0 0
      xxl-job-simple/src/main/java/com/xxl/service/job/TestDynamicJob.java
  95. 6 1
      xxl-job-simple/src/main/resources/applicationcontext-base.xml
  96. 2 1
      xxl-job-simple/src/main/resources/applicationcontext-database.xml
  97. 24 3
      xxl-job-simple/src/main/resources/applicationcontext-trigger-db.xml
  98. 3 3
      xxl-job-simple/src/main/resources/applicationcontext-trigger-local.xml
  99. 6 0
      xxl-job-simple/src/main/resources/applicationcontext-tx.xml
  100. 0 0
      xxl-job-simple/src/main/resources/freemarker.properties

+ 22 - 4
README.md Parādīt failu

@@ -5,7 +5,25 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
5 5
 
6 6
 博客地址(内附使用教程):http://www.cnblogs.com/xuxueli/p/5021979.html
7 7
 	
8
-# 基于quartz封装实现的的集群任务调度管理平台
9
-	1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手
10
-	2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.
11
-	3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行
8
+# 特点:基于quartz封装实现的的集群任务调度管理平台
9
+	1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
10
+	2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效;
11
+	3、服务HA:任务信息持久化到mysql中,Job服务天然支持集群,保证服务HA;
12
+	4、任务HA:某台Job服务挂掉,任务会平滑分配给其他的某一台存活服务,即使所有服务挂掉,重启时或补偿执行丢失任务;
13
+	5、一个任务只会在其中一台服务器上执行;
14
+	6、任务串行执行;
15
+	7、支持任务执行日志;
16
+	8、支持自定义参数;
17
+
18
+# 新版本 V1.2.x :架构模块化		【开发中...】
19
+	说明:V1.2版本将系统架构按功能拆分为:
20
+		调度模块[xxl-job-admin]:负责管理调度信息,按照调度配置发出调度请求;
21
+		任务模块[xxl-job-client-demo]:负责接收调度请求并执行任务逻辑;任务模块可以方便的嵌入web项目,可以参考此demo;
22
+		通讯模块[xxl-job-client]:负责调度模块和任务模块之间的信息通讯;
23
+	优点:
24
+		解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
25
+		高扩展性;
26
+		稳定性;
27
+		
28
+	Tips:如果您追求一个简单调度服务,这里也提供了一个简洁分支[xxl-job-simple],它针对旧版调度框架做了细微完善;
29
+	

+ 0 - 11
branch-dianping/README.md Parādīt failu

@@ -1,11 +0,0 @@
1
-## dianping-job[任务调度平台]
2
-	
3
-	分层: 调度和任务拆分, 支持动态扩充, 管理任务
4
-		1. 调度模块:dianping-job-web, 维护任务的调度信息,负责定时/周期性的发出调度请求.
5
-		2. 任务模块:dianping-job-client, 具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.
6
-		3. 通讯模块:dianping-job-client, 负责调度模块和任务模块之间的通讯.
7
-		
8
-	说明:
9
-		1. 调度模块集群部署[HA].
10
-		2. 任务串行执行.
11
-		3. 记录调度日系.

+ 0 - 10
branch-dianping/dianping-job-client-demo/src/main/resources/log4j.properties Parādīt failu

@@ -1,10 +0,0 @@
1
-log4j.rootLogger=info,console
2
-
3
-log4j.appender.console=org.apache.log4j.ConsoleAppender
4
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
5
-log4j.appender.console.layout.ConversionPattern=%d - dianping-job-client-demo - %p [%c] - <%m>%n
6
-
7
-log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender
8
-log4j.appender.logFile.File=${catalina.base}/logs/dianping-job-client-demo.log
9
-log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
10
-log4j.appender.logFile.layout.ConversionPattern=%d - dianping-job-client-demo - %p [%c] - <%m>%n

+ 0 - 10
branch-dianping/dianping-job-web/src/main/resources/log4j.properties Parādīt failu

@@ -1,10 +0,0 @@
1
-log4j.rootLogger=info,console,logFile
2
-
3
-log4j.appender.console=org.apache.log4j.ConsoleAppender
4
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
5
-log4j.appender.console.layout.ConversionPattern=%d - dianping-job-web - %p [%c] - <%m>%n
6
-
7
-log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender
8
-log4j.appender.logFile.File=${catalina.base}/logs/dianping-job-web.log
9
-log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
10
-log4j.appender.logFile.layout.ConversionPattern=%d - dianping-job-web - %p [%c] - <%m>%n

+ 0 - 76
branch-dianping/dianping-job-web/src/main/webapp/WEB-INF/template/job/help.ftl Parādīt failu

@@ -1,76 +0,0 @@
1
-<!DOCTYPE html>
2
-<html>
3
-<head>
4
-  	<title>调度中心</title>
5
-  	<#import "/common/common.macro.ftl" as netCommon>
6
-	<@netCommon.commonStyle />
7
-</head>
8
-<body class="hold-transition skin-blue sidebar-mini">
9
-<div class="wrapper">
10
-	<!-- header -->
11
-	<@netCommon.commonHeader />
12
-	<!-- left -->
13
-	<@netCommon.commonLeft />
14
-	
15
-	<!-- Content Wrapper. Contains page content -->
16
-	<div class="content-wrapper">
17
-		<!-- Content Header (Page header) -->
18
-		<section class="content-header">
19
-			<h1>使用教程<small>调度管理平台</small></h1>
20
-			<ol class="breadcrumb">
21
-				<li><a><i class="fa fa-dashboard"></i>调度中心</a></li>
22
-				<li class="active">使用教程</li>
23
-			</ol>
24
-		</section>
25
-
26
-		<!-- Main content -->
27
-		<section class="content">
28
-			<div class="callout callout-info">
29
-				<h4>简介:DIANPING_CLOCK</h4>
30
-				<p>基于quartz封装实现的的集群任务调度管理平台.</p>
31
-				<p></p>
32
-            </div>
33
-            <div class="callout callout-default">
34
-				<h4>特点:</h4>
35
-				<p>1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.</p>
36
-				<p>2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.</p>
37
-				<p>3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.</p>
38
-            </div>
39
-            
40
-            <div class="callout callout-default">
41
-				<h4>分层模型:</h4>
42
-				<p>1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.</p>
43
-				<p>2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.</p>
44
-				<p>
45
-				 	<div class="row">
46
-				      	<div class="col-xs-offset-1 col-xs-11">
47
-				      		<p>》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.</p>
48
-							<p>》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.</p>
49
-							<p>》通讯模块:负责调度模块和任务模块之间的通讯.</p>
50
-							<p>(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)</p>
51
-				      	</div>      
52
-			   		</div>
53
-				</p>
54
-            </div>
55
-            
56
-            <div class="callout callout-default">
57
-				<h4>调度属性解析 : 发出HTTP调度请求</h4>
58
-				<p>1、调度Key【必填】:调度信息的全局唯一标识.</p>
59
-				<p>2、调度Corn【必填】:调度执行的时间表达式.</p>
60
-				<p>3、调度描述【必填】:调度的简述.</p>
61
-				<p>4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.</p>
62
-				<p>5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.</p>
63
-            </div>
64
-		</section>
65
-		<!-- /.content -->
66
-	</div>
67
-	<!-- /.content-wrapper -->
68
-	
69
-	<!-- footer -->
70
-	<@netCommon.commonFooter />
71
-	<!-- control -->
72
-	<@netCommon.commonControl />
73
-</div>
74
-<@netCommon.commonScript />
75
-</body>
76
-</html>

+ 0 - 168
branch-dianping/doc/db/tables_mysql.sql Parādīt failu

@@ -1,168 +0,0 @@
1
-#
2
-# Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar
3
-#
4
-# PLEASE consider using mysql with innodb tables to avoid locking issues
5
-#
6
-# In your Quartz properties file, you'll need to set 
7
-# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
8
-#
9
-
10
-DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
11
-DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
12
-DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
13
-DROP TABLE IF EXISTS QRTZ_LOCKS;
14
-DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
15
-DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
16
-DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
17
-DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
18
-DROP TABLE IF EXISTS QRTZ_TRIGGERS;
19
-DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
20
-DROP TABLE IF EXISTS QRTZ_CALENDARS;
21
-
22
-
23
-CREATE TABLE QRTZ_JOB_DETAILS
24
-  (
25
-    SCHED_NAME VARCHAR(120) NOT NULL,
26
-    JOB_NAME  VARCHAR(200) NOT NULL,
27
-    JOB_GROUP VARCHAR(200) NOT NULL,
28
-    DESCRIPTION VARCHAR(250) NULL,
29
-    JOB_CLASS_NAME   VARCHAR(250) NOT NULL,
30
-    IS_DURABLE VARCHAR(1) NOT NULL,
31
-    IS_NONCONCURRENT VARCHAR(1) NOT NULL,
32
-    IS_UPDATE_DATA VARCHAR(1) NOT NULL,
33
-    REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
34
-    JOB_DATA BLOB NULL,
35
-    PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
36
-);
37
-
38
-CREATE TABLE QRTZ_TRIGGERS
39
-  (
40
-    SCHED_NAME VARCHAR(120) NOT NULL,
41
-    TRIGGER_NAME VARCHAR(200) NOT NULL,
42
-    TRIGGER_GROUP VARCHAR(200) NOT NULL,
43
-    JOB_NAME  VARCHAR(200) NOT NULL,
44
-    JOB_GROUP VARCHAR(200) NOT NULL,
45
-    DESCRIPTION VARCHAR(250) NULL,
46
-    NEXT_FIRE_TIME BIGINT(13) NULL,
47
-    PREV_FIRE_TIME BIGINT(13) NULL,
48
-    PRIORITY INTEGER NULL,
49
-    TRIGGER_STATE VARCHAR(16) NOT NULL,
50
-    TRIGGER_TYPE VARCHAR(8) NOT NULL,
51
-    START_TIME BIGINT(13) NOT NULL,
52
-    END_TIME BIGINT(13) NULL,
53
-    CALENDAR_NAME VARCHAR(200) NULL,
54
-    MISFIRE_INSTR SMALLINT(2) NULL,
55
-    JOB_DATA BLOB NULL,
56
-    PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
57
-    FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
58
-        REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
59
-);
60
-
61
-CREATE TABLE QRTZ_SIMPLE_TRIGGERS
62
-  (
63
-    SCHED_NAME VARCHAR(120) NOT NULL,
64
-    TRIGGER_NAME VARCHAR(200) NOT NULL,
65
-    TRIGGER_GROUP VARCHAR(200) NOT NULL,
66
-    REPEAT_COUNT BIGINT(7) NOT NULL,
67
-    REPEAT_INTERVAL BIGINT(12) NOT NULL,
68
-    TIMES_TRIGGERED BIGINT(10) NOT NULL,
69
-    PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
70
-    FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
71
-        REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
72
-);
73
-
74
-CREATE TABLE QRTZ_CRON_TRIGGERS
75
-  (
76
-    SCHED_NAME VARCHAR(120) NOT NULL,
77
-    TRIGGER_NAME VARCHAR(200) NOT NULL,
78
-    TRIGGER_GROUP VARCHAR(200) NOT NULL,
79
-    CRON_EXPRESSION VARCHAR(200) NOT NULL,
80
-    TIME_ZONE_ID VARCHAR(80),
81
-    PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
82
-    FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
83
-        REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
84
-);
85
-
86
-CREATE TABLE QRTZ_SIMPROP_TRIGGERS
87
-  (          
88
-    SCHED_NAME VARCHAR(120) NOT NULL,
89
-    TRIGGER_NAME VARCHAR(200) NOT NULL,
90
-    TRIGGER_GROUP VARCHAR(200) NOT NULL,
91
-    STR_PROP_1 VARCHAR(512) NULL,
92
-    STR_PROP_2 VARCHAR(512) NULL,
93
-    STR_PROP_3 VARCHAR(512) NULL,
94
-    INT_PROP_1 INT NULL,
95
-    INT_PROP_2 INT NULL,
96
-    LONG_PROP_1 BIGINT NULL,
97
-    LONG_PROP_2 BIGINT NULL,
98
-    DEC_PROP_1 NUMERIC(13,4) NULL,
99
-    DEC_PROP_2 NUMERIC(13,4) NULL,
100
-    BOOL_PROP_1 VARCHAR(1) NULL,
101
-    BOOL_PROP_2 VARCHAR(1) NULL,
102
-    PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
103
-    FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 
104
-    REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
105
-);
106
-
107
-CREATE TABLE QRTZ_BLOB_TRIGGERS
108
-  (
109
-    SCHED_NAME VARCHAR(120) NOT NULL,
110
-    TRIGGER_NAME VARCHAR(200) NOT NULL,
111
-    TRIGGER_GROUP VARCHAR(200) NOT NULL,
112
-    BLOB_DATA BLOB NULL,
113
-    PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
114
-    FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
115
-        REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
116
-);
117
-
118
-CREATE TABLE QRTZ_CALENDARS
119
-  (
120
-    SCHED_NAME VARCHAR(120) NOT NULL,
121
-    CALENDAR_NAME  VARCHAR(200) NOT NULL,
122
-    CALENDAR BLOB NOT NULL,
123
-    PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
124
-);
125
-
126
-CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
127
-  (
128
-    SCHED_NAME VARCHAR(120) NOT NULL,
129
-    TRIGGER_GROUP  VARCHAR(200) NOT NULL, 
130
-    PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
131
-);
132
-
133
-CREATE TABLE QRTZ_FIRED_TRIGGERS
134
-  (
135
-    SCHED_NAME VARCHAR(120) NOT NULL,
136
-    ENTRY_ID VARCHAR(95) NOT NULL,
137
-    TRIGGER_NAME VARCHAR(200) NOT NULL,
138
-    TRIGGER_GROUP VARCHAR(200) NOT NULL,
139
-    INSTANCE_NAME VARCHAR(200) NOT NULL,
140
-    FIRED_TIME BIGINT(13) NOT NULL,
141
-    SCHED_TIME BIGINT(13) NOT NULL,
142
-    PRIORITY INTEGER NOT NULL,
143
-    STATE VARCHAR(16) NOT NULL,
144
-    JOB_NAME VARCHAR(200) NULL,
145
-    JOB_GROUP VARCHAR(200) NULL,
146
-    IS_NONCONCURRENT VARCHAR(1) NULL,
147
-    REQUESTS_RECOVERY VARCHAR(1) NULL,
148
-    PRIMARY KEY (SCHED_NAME,ENTRY_ID)
149
-);
150
-
151
-CREATE TABLE QRTZ_SCHEDULER_STATE
152
-  (
153
-    SCHED_NAME VARCHAR(120) NOT NULL,
154
-    INSTANCE_NAME VARCHAR(200) NOT NULL,
155
-    LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
156
-    CHECKIN_INTERVAL BIGINT(13) NOT NULL,
157
-    PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
158
-);
159
-
160
-CREATE TABLE QRTZ_LOCKS
161
-  (
162
-    SCHED_NAME VARCHAR(120) NOT NULL,
163
-    LOCK_NAME  VARCHAR(40) NOT NULL, 
164
-    PRIMARY KEY (SCHED_NAME,LOCK_NAME)
165
-);
166
-
167
-
168
-commit;

+ 0 - 33
branch-dianping/pom.xml Parādīt failu

@@ -1,33 +0,0 @@
1
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
-	<modelVersion>4.0.0</modelVersion>
4
-	<groupId>com.dianping</groupId>
5
-	<artifactId>dianping-job</artifactId>
6
-	<version>0.0.1-SNAPSHOT</version>
7
-	<packaging>pom</packaging>
8
-	
9
-	<modules>
10
-		<module>dianping-job-web</module>
11
-		<module>dianping-job-client</module>
12
-		<module>dianping-job-client-demo</module>
13
-	</modules>
14
-
15
-	<dependencies>
16
-	</dependencies>
17
-
18
-	<build>
19
-		<plugins>
20
-			<plugin>
21
-				<groupId>org.apache.maven.plugins</groupId>
22
-				<artifactId>maven-compiler-plugin</artifactId>
23
-				<version>3.1</version>
24
-				<configuration>
25
-					<source>1.6</source>
26
-					<target>1.6</target>
27
-					<encoding>UTF8</encoding>
28
-				</configuration>
29
-			</plugin>
30
-		</plugins>
31
-	</build>
32
-
33
-</project>

branch-dianping/doc/db/tables_mysql-for-dianping-wed.sql → doc/db/tables_mysql-for-dianping-wed.sql Parādīt failu


+ 4 - 1
pom.xml Parādīt failu

@@ -3,10 +3,13 @@
3 3
 	<modelVersion>4.0.0</modelVersion>
4 4
 	<groupId>com.xxl</groupId>
5 5
 	<artifactId>xxl-job</artifactId>
6
-	<version>0.0.1-SNAPSHOT</version>
6
+	<version>1.1.1-SNAPSHOT</version>
7 7
 	<packaging>pom</packaging>
8 8
 	<modules>
9 9
 		<module>xxl-job-admin</module>
10
+		<module>xxl-job-client</module>
11
+		<module>xxl-job-client-demo</module>
12
+		<module>xxl-job-simple</module>
10 13
 	</modules>
11 14
 
12 15
 	<build>

+ 32 - 0
xxl-job-admin/.classpath Parādīt failu

@@ -0,0 +1,32 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<classpath>
3
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
4
+		<attributes>
5
+			<attribute name="optional" value="true"/>
6
+			<attribute name="maven.pomderived" value="true"/>
7
+		</attributes>
8
+	</classpathentry>
9
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
10
+		<attributes>
11
+			<attribute name="maven.pomderived" value="true"/>
12
+		</attributes>
13
+	</classpathentry>
14
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
15
+		<attributes>
16
+			<attribute name="optional" value="true"/>
17
+			<attribute name="maven.pomderived" value="true"/>
18
+		</attributes>
19
+	</classpathentry>
20
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
21
+		<attributes>
22
+			<attribute name="maven.pomderived" value="true"/>
23
+		</attributes>
24
+	</classpathentry>
25
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
26
+		<attributes>
27
+			<attribute name="maven.pomderived" value="true"/>
28
+			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
29
+		</attributes>
30
+	</classpathentry>
31
+	<classpathentry kind="output" path="target/classes"/>
32
+</classpath>

+ 1 - 0
xxl-job-admin/.gitignore Parādīt failu

@@ -0,0 +1 @@
1
+/target/

+ 42 - 0
xxl-job-admin/.project Parādīt failu

@@ -0,0 +1,42 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>xxl-job-admin</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+		<buildCommand>
14
+			<name>org.eclipse.jdt.core.javabuilder</name>
15
+			<arguments>
16
+			</arguments>
17
+		</buildCommand>
18
+		<buildCommand>
19
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
20
+			<arguments>
21
+			</arguments>
22
+		</buildCommand>
23
+		<buildCommand>
24
+			<name>org.eclipse.wst.validation.validationbuilder</name>
25
+			<arguments>
26
+			</arguments>
27
+		</buildCommand>
28
+		<buildCommand>
29
+			<name>org.eclipse.m2e.core.maven2Builder</name>
30
+			<arguments>
31
+			</arguments>
32
+		</buildCommand>
33
+	</buildSpec>
34
+	<natures>
35
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
36
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
37
+		<nature>org.eclipse.jdt.core.javanature</nature>
38
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
39
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
40
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
41
+	</natures>
42
+</projectDescription>

+ 13 - 0
xxl-job-admin/.settings/.jsdtscope Parādīt failu

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<classpath>
3
+	<classpathentry kind="src" path="src/main/webapp"/>
4
+	<classpathentry excluding="**/*.min.js|**/node_modules/*|**/bower_components/*" kind="src" path="target/m2e-wtp/web-resources"/>
5
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
6
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
7
+		<attributes>
8
+			<attribute name="hide" value="true"/>
9
+		</attributes>
10
+	</classpathentry>
11
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
12
+	<classpathentry kind="output" path=""/>
13
+</classpath>

+ 2 - 0
xxl-job-admin/.settings/org.eclipse.core.resources.prefs Parādīt failu

@@ -0,0 +1,2 @@
1
+eclipse.preferences.version=1
2
+encoding//src/main/java=UTF8

+ 8 - 0
xxl-job-admin/.settings/org.eclipse.jdt.core.prefs Parādīt failu

@@ -0,0 +1,8 @@
1
+eclipse.preferences.version=1
2
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
4
+org.eclipse.jdt.core.compiler.compliance=1.6
5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
8
+org.eclipse.jdt.core.compiler.source=1.6

+ 4 - 0
xxl-job-admin/.settings/org.eclipse.m2e.core.prefs Parādīt failu

@@ -0,0 +1,4 @@
1
+activeProfiles=
2
+eclipse.preferences.version=1
3
+resolveWorkspaceProjects=true
4
+version=1

+ 13 - 0
xxl-job-admin/.settings/org.eclipse.wst.common.component Parādīt failu

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
2
+    <wb-module deploy-name="xxl-job-admin">
3
+        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
4
+        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
5
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
6
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
7
+        <dependent-module archiveName="xxl-job-client-1.1.2-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/xxl-job-client/xxl-job-client">
8
+            <dependency-type>uses</dependency-type>
9
+        </dependent-module>
10
+        <property name="context-root" value="xxl-job-admin"/>
11
+        <property name="java-output-path" value="/xxl-job-admin/target/classes"/>
12
+    </wb-module>
13
+</project-modules>

+ 7 - 0
xxl-job-admin/.settings/org.eclipse.wst.common.project.facet.core.xml Parādīt failu

@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<faceted-project>
3
+  <fixed facet="wst.jsdt.web"/>
4
+  <installed facet="java" version="1.6"/>
5
+  <installed facet="jst.web" version="2.5"/>
6
+  <installed facet="wst.jsdt.web" version="1.0"/>
7
+</faceted-project>

+ 1 - 0
xxl-job-admin/.settings/org.eclipse.wst.jsdt.ui.superType.container Parādīt failu

@@ -0,0 +1 @@
1
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary

+ 1 - 0
xxl-job-admin/.settings/org.eclipse.wst.jsdt.ui.superType.name Parādīt failu

@@ -0,0 +1 @@
1
+Window

+ 2 - 0
xxl-job-admin/.settings/org.eclipse.wst.validation.prefs Parādīt failu

@@ -0,0 +1,2 @@
1
+disabled=06target
2
+eclipse.preferences.version=1

+ 14 - 6
xxl-job-admin/pom.xml Parādīt failu

@@ -4,11 +4,12 @@
4 4
 	<parent>
5 5
 		<groupId>com.xxl</groupId>
6 6
 		<artifactId>xxl-job</artifactId>
7
-		<version>0.0.1-SNAPSHOT</version>
7
+		<version>1.1.1-SNAPSHOT</version>
8 8
 	</parent>
9 9
 	<artifactId>xxl-job-admin</artifactId>
10
+	<version>1.1.2-SNAPSHOT</version>
10 11
 	<packaging>war</packaging>
11
-	
12
+
12 13
 	<properties>
13 14
 		<spring.version>3.2.14.RELEASE</spring.version>
14 15
 	</properties>
@@ -128,13 +129,20 @@
128 129
 			<artifactId>quartz</artifactId>
129 130
 			<version>2.2.1</version>
130 131
 		</dependency>
131
-		<!-- xxl-mq-core 
132
+		
133
+		<!-- httpclient -->
134
+		<dependency>
135
+			<groupId>org.apache.httpcomponents</groupId>
136
+			<artifactId>httpclient</artifactId>
137
+			<version>4.3.6</version>
138
+		</dependency>
139
+		
140
+		<!-- xxl-job-client -->
132 141
 		<dependency>
133 142
 			<groupId>com.xxl</groupId>
134
-			<artifactId>xxl-job-core</artifactId>
135
-			<version>0.0.1-SNAPSHOT</version>
143
+			<artifactId>xxl-job-client</artifactId>
144
+			<version>1.1.2-SNAPSHOT</version>
136 145
 		</dependency>
137
-		-->
138 146
 
139 147
 	</dependencies>
140 148
 

branch-dianping/dianping-job-web/src/main/java/com/dianping/job/controller/IndexController.java → xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.controller;
1
+package com.xxl.job.controller;
2 2
 
3 3
 import java.io.UnsupportedEncodingException;
4 4
 import java.util.HashMap;
@@ -18,10 +18,10 @@ import org.springframework.ui.Model;
18 18
 import org.springframework.web.bind.annotation.RequestMapping;
19 19
 import org.springframework.web.bind.annotation.ResponseBody;
20 20
 
21
-import com.dianping.job.client.handler.HandlerRepository;
22
-import com.dianping.job.core.model.ReturnT;
23
-import com.dianping.job.core.util.DynamicSchedulerUtil;
24
-import com.dianping.job.service.job.HttpJobBean;
21
+import com.xxl.job.client.handler.HandlerRepository;
22
+import com.xxl.job.core.model.ReturnT;
23
+import com.xxl.job.core.util.DynamicSchedulerUtil;
24
+import com.xxl.job.service.job.HttpJobBean;
25 25
 
26 26
 /**
27 27
  * index controller

branch-dianping/dianping-job-web/src/main/java/com/dianping/job/core/model/ReturnT.java → xxl-job-admin/src/main/java/com/xxl/job/core/model/ReturnT.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.core.model;
1
+package com.xxl.job.core.model;
2 2
 
3 3
 /**
4 4
  * common return

branch-dianping/dianping-job-web/src/main/java/com/dianping/job/core/model/DianpingJobLog.java → xxl-job-admin/src/main/java/com/xxl/job/core/model/XxlJobLog.java Parādīt failu

@@ -1,12 +1,12 @@
1
-package com.dianping.job.core.model;
1
+package com.xxl.job.core.model;
2 2
 
3 3
 import java.util.Date;
4 4
 
5 5
 /**
6
- * dianping job log, used to track trigger process
6
+ * xxl-job log, used to track trigger process
7 7
  * @author xuxueli  2015-12-19 23:19:09
8 8
  */
9
-public class DianpingJobLog {
9
+public class XxlJobLog {
10 10
 	
11 11
 	private String jobTriggerUuid;
12 12
 	private String jobHandleName;
@@ -70,7 +70,7 @@ public class DianpingJobLog {
70 70
 	
71 71
 	@Override
72 72
 	public String toString() {
73
-		return "DianpingJobLog [jobTriggerUuid=" + jobTriggerUuid + ", jobHandleName=" + jobHandleName
73
+		return "XxlJobLog [jobTriggerUuid=" + jobTriggerUuid + ", jobHandleName=" + jobHandleName
74 74
 				+ ", triggerTime=" + triggerTime + ", triggerStatus=" + triggerStatus + ", triggerDetailLog="
75 75
 				+ triggerDetailLog + ", handleTime=" + handleTime + ", handleStatus=" + handleStatus
76 76
 				+ ", handleDetailLog=" + handleDetailLog + "]";

branch-dianping/dianping-job-web/src/main/java/com/dianping/job/core/util/DynamicSchedulerUtil.java → xxl-job-admin/src/main/java/com/xxl/job/core/util/DynamicSchedulerUtil.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.core.util;
1
+package com.xxl.job.core.util;
2 2
 
3 3
 import java.util.ArrayList;
4 4
 import java.util.Date;

branch-dianping/dianping-job-web/src/main/java/com/dianping/job/service/ITriggerService.java → xxl-job-admin/src/main/java/com/xxl/job/service/ITriggerService.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.service;
1
+package com.xxl.job.service;
2 2
 
3 3
 /**
4 4
  * local trigger, only exists in local jvm

branch-dianping/dianping-job-web/src/main/java/com/dianping/job/service/impl/TriggerServiceImpl.java → xxl-job-admin/src/main/java/com/xxl/job/service/impl/TriggerServiceImpl.java Parādīt failu

@@ -1,10 +1,10 @@
1
-package com.dianping.job.service.impl;
1
+package com.xxl.job.service.impl;
2 2
 
3 3
 import org.slf4j.Logger;
4 4
 import org.slf4j.LoggerFactory;
5 5
 import org.springframework.stereotype.Service;
6 6
 
7
-import com.dianping.job.service.ITriggerService;
7
+import com.xxl.job.service.ITriggerService;
8 8
 
9 9
 /**
10 10
  * local trigger, only exists in local jvm
@@ -15,7 +15,7 @@ public class TriggerServiceImpl implements ITriggerService {
15 15
 	private static transient Logger logger = LoggerFactory.getLogger(TriggerServiceImpl.class);
16 16
 	
17 17
 	public void beat() {
18
-		logger.info(">>>>>>>>>>> dianping-clock beat success.");
18
+		logger.info(">>>>>>>>>>> xxl-job beat success.");
19 19
 	}
20 20
 	
21 21
 }

branch-dianping/dianping-job-web/src/main/java/com/dianping/job/service/job/HttpJobBean.java → xxl-job-admin/src/main/java/com/xxl/job/service/job/HttpJobBean.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.service.job;
1
+package com.xxl.job.service.job;
2 2
 
3 3
 import java.io.IOException;
4 4
 import java.io.PrintWriter;
@@ -27,10 +27,10 @@ import org.slf4j.Logger;
27 27
 import org.slf4j.LoggerFactory;
28 28
 import org.springframework.scheduling.quartz.QuartzJobBean;
29 29
 
30
-import com.dianping.job.client.handler.HandlerRepository;
31
-import com.dianping.job.client.handler.IJobHandler.JobTriggerStatus;
32
-import com.dianping.job.core.model.DianpingJobLog;
33
-import com.dianping.job.core.util.DynamicSchedulerUtil;
30
+import com.xxl.job.client.handler.HandlerRepository;
31
+import com.xxl.job.client.handler.IJobHandler.JobTriggerStatus;
32
+import com.xxl.job.core.model.XxlJobLog;
33
+import com.xxl.job.core.util.DynamicSchedulerUtil;
34 34
 
35 35
 /**
36 36
  * http job bean
@@ -58,17 +58,17 @@ public class HttpJobBean extends QuartzJobBean {
58 58
 		String job_url = params.get(DynamicSchedulerUtil.job_url);
59 59
 		triggerPost(job_url, params);
60 60
 		
61
-		logger.info(">>>>>>>>>>> dianping-clock run :jobId:{}, group:{}, jobDataMap:{}", 
61
+		logger.info(">>>>>>>>>>> xxl-job run :jobId:{}, group:{}, jobDataMap:{}", 
62 62
 				new Object[]{triggerKey, triggerGroup, jobDataMap});
63 63
     }
64 64
 	
65 65
 	public static void triggerPost(String reqURL, Map<String, String> params){
66 66
 		// save log
67
-		DianpingJobLog jobLog = new DianpingJobLog();
67
+		XxlJobLog jobLog = new XxlJobLog();
68 68
 		jobLog.setJobTriggerUuid(UUID.randomUUID().toString());
69 69
 		jobLog.setJobHandleName(params.get(HandlerRepository.handleName));
70 70
 		jobLog.setTriggerTime(new Date());
71
-		logger.info(">>>>>>>>>>> dianping-clock trigger start :jobLog:{}", jobLog);
71
+		logger.info(">>>>>>>>>>> xxl-job trigger start :jobLog:{}", jobLog);
72 72
 		
73 73
 		// post
74 74
 		String responseContent = null;
@@ -91,7 +91,7 @@ public class HttpJobBean extends QuartzJobBean {
91 91
 				responseContent = EntityUtils.toString(entity, "UTF-8");
92 92
 				EntityUtils.consume(entity);
93 93
 			}
94
-			logger.info(">>>>>>>>>>> dianping-clock trigger ing :jobLog:{}, response:{}, responseContent:{}", jobLog, response, responseContent);
94
+			logger.info(">>>>>>>>>>> xxl-job trigger ing :jobLog:{}, response:{}, responseContent:{}", jobLog, response, responseContent);
95 95
 		} catch (Exception e) {
96 96
 			e.printStackTrace();
97 97
 			
@@ -117,17 +117,17 @@ public class HttpJobBean extends QuartzJobBean {
117 117
 				jobLog.setTriggerDetailLog(jobLog.getTriggerDetailLog().substring(0, 1000));
118 118
 			}
119 119
 			
120
-			logger.info(">>>>>>>>>>> dianping-clock trigger end :jobLog:{}", jobLog);
120
+			logger.info(">>>>>>>>>>> xxl-job trigger end :jobLog:{}", jobLog);
121 121
 		}
122 122
 		
123 123
 	}
124 124
 	
125 125
 	public static void main(String[] args) {
126
-		String url = "http://localhost:8080/dianping-job-client-demo/dianpingJobServlet";
126
+		String url = "http://localhost:8080/xxl-job-client-demo/xxlJobServlet";
127 127
 		
128 128
 		for (int i = 0; i < 3; i++) {
129 129
 			Map<String, String> params = new HashMap<String, String>();
130
-			params.put(HandlerRepository.handleName, "com.dianping.job.service.handler.DemoJobHandler");
130
+			params.put(HandlerRepository.handleName, "com.xxl.job.service.handler.DemoJobHandler");
131 131
 			params.put(HandlerRepository.triggerUuid, i+"");
132 132
 			params.put("key", i+"");
133 133
 			

+ 1 - 6
xxl-job-admin/src/main/resources/applicationcontext-base.xml Parādīt failu

@@ -10,7 +10,7 @@
10 10
            http://www.springframework.org/schema/util/spring-util.xsd">
11 11
 
12 12
 	<context:annotation-config />
13
-	<context:component-scan base-package="com.xxl.service.impl, com.xxl.dao.impl" />
13
+	<context:component-scan base-package="com.xxl.job.service" />
14 14
 
15 15
 	<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
16 16
 		<property name="templateLoaderPath" value="/WEB-INF/template/" />
@@ -19,11 +19,6 @@
19 19
 				<property name="location" value="classpath:freemarker.properties" />
20 20
 			</bean>
21 21
 		</property>
22
-		<property name="freemarkerVariables">
23
-			<bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
24
-				<property name="location" value="classpath:freemarker.variables.properties" />
25
-			</bean>
26
-		</property>
27 22
 	</bean>
28 23
 
29 24
 	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

+ 1 - 2
xxl-job-admin/src/main/resources/applicationcontext-database.xml Parādīt failu

@@ -15,7 +15,6 @@
15 15
 	<context:annotation-config />
16 16
 	<context:component-scan base-package="com.xxl.service.impl, com.xxl.dao.impl" />
17 17
 
18
-	<!-- c3p0:Main数据源  -->
19 18
 	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  destroy-method="close">  
20 19
 	    <property name="driverClass" value="${c3p0.driverClass}" />  
21 20
 	    <property name="jdbcUrl" value="${c3p0.url}" />  
@@ -35,7 +34,7 @@
35 34
 		<property name="mapperLocations" value="classpath*:com/xxl/core/model/mapper/*.xml"/>
36 35
 	</bean>
37 36
     
38
-    <!-- Template在Junit测试的时候,必须使用scope="prototype",原因未知 -->
37
+    <!-- scope must be "prototype" when junit -->
39 38
     <bean id="sqlSessionTemplate"  class="org.mybatis.spring.SqlSessionTemplate" scope="prototype">  
40 39
           <constructor-arg index="0" ref="sqlSessionFactory" />  
41 40
     </bean> 

+ 3 - 24
xxl-job-admin/src/main/resources/applicationcontext-trigger-db.xml Parādīt failu

@@ -9,37 +9,16 @@
9 9
            http://www.springframework.org/schema/util 
10 10
            http://www.springframework.org/schema/util/spring-util.xsd">
11 11
 
12
-	<!-- Job trigger -->
13
-	<bean id="job02Trigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
14
-		<property name="jobDetail" >
15
-			<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
16
-				<property name="jobClass" value="com.xxl.service.job.JobDetailDemo"/>
17
-				<property name="jobDataAsMap">
18
-					<map>
19
-						<!-- <entry key="xxService" value-ref="xxService" /> -->
20
-					</map>
21
-				</property>  
22
-				<property name="durability" value="true" />
23
-			</bean>
24
-		</property>
25
-		<property name="cronExpression" value="0/3 * * * * ? *" />
26
-	</bean>
27
-
28
-	<!-- Job信息会被上报并持久化到mysql中,多个集群节点中竞争Job锁,只会有一台执行 -->
29 12
 	<bean id="quartzScheduler" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
30 13
 		<property name="dataSource" ref="dataSource" />
31 14
         <property name="autoStartup" value="true" />
32 15
 		<property name="applicationContextSchedulerContextKey"  value="applicationContextKey" /> 
33 16
         <property name="configLocation" value="classpath:quartz.properties"/>
34
-		<property name="triggers">
35
-			<list>
36
-				<!-- <ref bean="job02Trigger" /> -->
37
-			</list>
38
-		</property>
39 17
 	</bean>
40 18
 	
41
-	<!-- 调度器 -->
42
-	<bean id="dynamicSchedulerUtil" class="com.xxl.quartz.DynamicSchedulerUtil">
19
+	<!-- 协同-调度器 -->
20
+	<bean id="dynamicSchedulerUtil" class="com.xxl.job.core.util.DynamicSchedulerUtil">
21
+		<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
43 22
         <property name="scheduler" ref="quartzScheduler"/>
44 23
     </bean>
45 24
 

+ 3 - 3
xxl-job-admin/src/main/resources/applicationcontext-trigger-local.xml Parādīt failu

@@ -20,11 +20,11 @@
20 20
 		<property name="cronExpression" value="0/10 * * * * ? *" />
21 21
 	</bean>
22 22
 	
23
-	<!-- Job被加载到内存中,每个集群节点相互独立,都会执行该任务 -->
24
-	<bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
23
+	<!-- 进程-调度器 -->
24
+	<bean name="jvmQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
25 25
 		<property name="triggers">
26 26
 			<list>
27
-				<ref bean="beatTrigger" />
27
+				<!-- <ref bean="beatTrigger" /> -->
28 28
 			</list>
29 29
 		</property>
30 30
 	</bean>

+ 0 - 6
xxl-job-admin/src/main/resources/applicationcontext-tx.xml Parādīt failu

@@ -12,15 +12,12 @@
12 12
 		http://www.springframework.org/schema/tx 
13 13
 		http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
14 14
 
15
-    <!-- 事务管理器(声明式事务) -->
16 15
 	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
17 16
 		<property name="dataSource" ref="dataSource" />
18 17
 	</bean>
19 18
       
20
-	<!-- 启动事务注解(方式1:注解方式) -->
21 19
 	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
22 20
 	
23
-	<!-- 事务通知(方式2:XML事务管理) -->
24 21
 	<tx:advice id="txAdvice" transaction-manager="transactionManager">
25 22
 		<tx:attributes>
26 23
 			<tx:method name="detail*" propagation="SUPPORTS" />
@@ -33,11 +30,8 @@
33 30
 		</tx:attributes>
34 31
 	</tx:advice>
35 32
 
36
-	<!-- AOP配置 -->
37 33
 	<aop:config>
38
-		<!-- 定义一个切入点 -->
39 34
 		<aop:pointcut id="txoperation" expression="execution(* com.xxl.service.imp.*.*(..))" />
40
-		<!-- 切入点事务通知 -->
41 35
 		<aop:advisor pointcut-ref="txoperation" advice-ref="txAdvice" />
42 36
 	</aop:config>
43 37
 	

+ 4 - 4
xxl-job-admin/src/main/resources/log4j.properties Parādīt failu

@@ -1,10 +1,10 @@
1
-log4j.rootLogger=info,console
1
+log4j.rootLogger=info,console,logFile
2 2
 
3 3
 log4j.appender.console=org.apache.log4j.ConsoleAppender
4 4
 log4j.appender.console.layout=org.apache.log4j.PatternLayout
5
-log4j.appender.console.layout.ConversionPattern=%d - xxl-job-demo - %p [%c] - <%m>%n
5
+log4j.appender.console.layout.ConversionPattern=%d - xxl-job-admin - %p [%c] - <%m>%n
6 6
 
7 7
 log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender
8
-log4j.appender.logFile.File=${catalina.base}/logs/xxl-job-demo.log
8
+log4j.appender.logFile.File=${catalina.base}/logs/xxl-job-admin.log
9 9
 log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
10
-log4j.appender.logFile.layout.ConversionPattern=%d - xxl-job-demo - %p [%c] - <%m>%n
10
+log4j.appender.logFile.layout.ConversionPattern=%d - xxl-job-admin - %p [%c] - <%m>%n

+ 1 - 0
xxl-job-admin/src/main/resources/quartz.properties Parādīt failu

@@ -18,6 +18,7 @@ org.quartz.jobStore.misfireThreshold: 60000
18 18
 #org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
19 19
 
20 20
 # for cluster
21
+#org.quartz.jobStore.tablePrefix = WED_qrtz_
21 22
 org.quartz.scheduler.instanceId: AUTO
22 23
 org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX
23 24
 org.quartz.jobStore.isClustered: true

+ 15 - 14
xxl-job-admin/src/main/resources/springmvc-context.xml Parādīt failu

@@ -18,34 +18,35 @@
18 18
 		http://www.springframework.org/schema/mvc
19 19
 		http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
20 20
 
21
-	<description>Spring-web MVC配置</description>
22
-	
23 21
 	<mvc:annotation-driven /> 
24
-	<context:component-scan base-package="com.xxl.controller" />
22
+	<context:component-scan base-package="com.xxl.job.controller" />
25 23
 	
26 24
 	<mvc:resources mapping="/favicon.ico" location="/favicon.ico" />
27
-	<mvc:resources mapping="/static/**" location="/static/" />			<!-- 不拦截static目录下 -->
28
-	<mvc:resources mapping="/**/*.html" location="/" />					<!-- 不拦截.html后缀 -->
25
+	<mvc:resources mapping="/static/**" location="/static/" />
26
+	<mvc:resources mapping="/**/*.html" location="/" />
29 27
 	
30 28
 	<bean id="viewResolver"	class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
31
-		<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />	<!-- 解析视图模板类 -->
32
-		<property name="prefix" value="" />								<!-- 模板前后缀,指定html页面为模板 -->
29
+		<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
30
+		<property name="prefix" value="" />
33 31
 		<property name="suffix" value=".ftl" />
34
-		<property name="contentType" value="text/html;charset=UTF-8" />	<!-- 模板输出内容编码 (此处应与defaultEncoding保持一致) -->
35
-		<property name="exposeSpringMacroHelpers" value="true" />		<!-- 访问Request/Session宏助手 -->
36
-		<property name="exposeRequestAttributes" value="true" />		<!-- 允许访问Request属性,默认为false -->
37
-		<property name="exposeSessionAttributes" value="true" />		<!-- 允许访问Session属性,默认为false -->
38
-		<property name="requestContextAttribute" value="request" />		<!-- 将HttpServletRequest的属性存放到request这个变量中 -->
32
+		<property name="contentType" value="text/html;charset=UTF-8" />
33
+		<property name="exposeSpringMacroHelpers" value="true" />
34
+		<property name="exposeRequestAttributes" value="true" />
35
+		<property name="exposeSessionAttributes" value="true" />
36
+		<property name="requestContextAttribute" value="request" />
39 37
 		<property name="cache" value="true" />
40 38
 		<property name="order" value="0" />
41 39
 	</bean>
42 40
 	
43
-	<!-- <mvc:interceptors>
41
+	<!--
42
+	// 自定义拦截器,支持SSO登陆拦截 
43
+	<mvc:interceptors>
44 44
 		<mvc:interceptor>
45 45
 			<mvc:mapping path="/**"/>
46 46
 			<bean class="com.xxl.controller.interceptor.PermissionInterceptor"/>
47 47
 		</mvc:interceptor>
48 48
 	</mvc:interceptors>
49
- 	<bean id="exceptionResolver" class="com.xxl.controller.resolver.WebExceptionResolver" /> -->
49
+ 	<bean id="exceptionResolver" class="com.xxl.controller.resolver.WebExceptionResolver" /> 
50
+ 	-->
50 51
 	
51 52
 </beans>

+ 8 - 87
xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl Parādīt failu

@@ -37,8 +37,6 @@
37 37
 	<script src="${request.contextPath}/static/adminlte/plugins/fastclick/fastclick.js"></script>
38 38
 	<!-- AdminLTE App -->
39 39
 	<script src="${request.contextPath}/static/adminlte/dist/js/app.min.js"></script>
40
-	<!-- SlimScroll 1.3.0 -->
41
-	<script src="${request.contextPath}/static/adminlte/plugins/slimScroll/jquery.slimscroll.min.js"></script>
42 40
 
43 41
     <!-- scrollup -->
44 42
     <script src="${request.contextPath}/static/plugins/scrollup/jquery.scrollUp.min.js"></script>
@@ -47,81 +45,15 @@
47 45
 
48 46
 <#macro commonHeader>
49 47
 	<header class="main-header">
50
-	
51
-		<!-- Logo -->
52
-		<a href="${request.contextPath}/" class="logo"> <!-- mini logo for sidebar mini 50x50 pixels -->
53
-			<span class="logo-mini"><b>X</b>XL</span> <!-- logo for regular state and mobile devices -->
54
-			<span class="logo-lg"><b>调度</b>中心</span>
48
+		<a href="${request.contextPath}/" class="logo">
49
+			<span class="logo-mini"><b>X</b>XL</span>
50
+			<span class="logo-lg"><b>任务调度</b>中心</span>
55 51
 		</a>
56
-	
57
-		<!-- Header Navbar: style can be found in header.less -->
58 52
 		<nav class="navbar navbar-static-top" role="navigation">
59
-			<!-- Sidebar toggle button-->
60 53
 			<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button"><span class="sr-only">切换导航</span></a>
61
-			<!-- Navbar Right Menu -->
62
-			<div class="navbar-custom-menu">
63
-				<ul class="nav navbar-nav">
64
-					<!-- 通知: style can be found in dropdown.less -->
65
-					<li class="dropdown notifications-menu">
66
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell-o"></i> <span class="label label-warning">5</span></a>
67
-						<ul class="dropdown-menu">
68
-							<li class="header">您有5条通知</li>
69
-							<li>
70
-								<!-- inner menu: contains the actual data -->
71
-								<ul class="menu">
72
-									<li><a href="#"> <i class="fa fa-warning text-yellow"></i>
73
-										这是一个不错的应用
74
-									</a></li>
75
-									<li><a href="#"> <i class="fa fa-warning text-yellow"></i>
76
-										这是一个很不错的应用
77
-									</a></li>
78
-									<li><a href="#"> <i class="fa fa-warning text-yellow"></i>
79
-										这是一个非常不错的应用
80
-									</a></li>
81
-									<li><a href="#"> <i class="fa fa-warning text-yellow"></i> 
82
-										这是一个非常非常不错的应用
83
-									</a></li>
84
-									<li><a href="#"> <i class="fa fa-warning text-yellow"></i>
85
-										这是一个非常非常非常不错的应用
86
-									</a></li>
87
-								</ul>
88
-							</li>
89
-							<li class="footer"><a href="#">查看全部</a></li>
90
-						</ul>
91
-					</li>
92
-					<!-- 账号: style can be found in dropdown.less -->
93
-					<li class="dropdown user user-menu">
94
-						<a href="#"	class="dropdown-toggle" data-toggle="dropdown"> 
95
-							<i class="fa fa-user text-aqua"></i><span class="hidden-xs">${loginIdentity.userName}</span>
96
-						</a>
97
-						<ul class="dropdown-menu">
98
-							<!-- User image -->
99
-							<li class="user-header">
100
-								<p>
101
-									${loginIdentity.realName} - 前端研发
102
-									<small>注册于 2012-11-20</small>
103
-								</p>
104
-							</li>
105
-							<!-- Menu Body 
106
-							<li class="user-body">
107
-								<div class="col-xs-4 text-center"><a href="#">Followers</a></div>
108
-								<div class="col-xs-4 text-center"><a href="#">Sales</a></div>
109
-								<div class="col-xs-4 text-center"><a href="#">Friends</a></div>
110
-							</li>-->
111
-							<!-- Menu Footer-->
112
-							<li class="user-footer">
113
-								<div class="pull-left"><a href="#" class="btn btn-default btn-flat">资料</a></div>
114
-								<div class="pull-right"><a href="javascript:;" class="btn btn-default btn-flat" id="logoutBtn" >注销</a></div>
115
-							</li>
116
-						</ul></li>
117
-					<!-- Control Sidebar Toggle Button -->
118
-					<li><a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a></li>
119
-				</ul>
120
-			</div>
121
-	
54
+			<div class="navbar-custom-menu"></div>
122 55
 		</nav>
123 56
 	</header>
124
-	
125 57
 </#macro>
126 58
 
127 59
 <#macro commonLeft>
@@ -131,20 +63,9 @@
131 63
 		<section class="sidebar">
132 64
 			<!-- sidebar menu: : style can be found in sidebar.less -->
133 65
 			<ul class="sidebar-menu">
134
-				
135 66
 				<li class="header">常用模块</li>
136
-				<li class="nav-click" ><a href="${request.contextPath}/job/index"><i class="fa fa-circle-o text-red"></i> <span>调度管理</span></a></li>
137
-				<li class="nav-click" ><a href="${request.contextPath}/job/help"><i class="fa fa-circle-o text-yellow"></i><span>使用教程</span></a></li>
138
-				
139
-				<li class="header">全部模块</li>
140
-				<li class="treeview nav-click">
141
-					<a href="#"><i class="fa fa-dashboard"></i> <span>调度中心</span><i class="fa fa-angle-left pull-right"></i></a>
142
-					<ul class="treeview-menu">
143
-						<li class="nav-click" ><a href="${request.contextPath}/job/index"><i class="fa fa-circle-o"></i>调度管理</a></li>
144
-						<li class="nav-click" ><a href="${request.contextPath}/job/help"><i class="fa fa-circle-o"></i>使用教程</a></li>
145
-					</ul>
146
-				</li>
147
-				
67
+				<li class="nav-click" ><a href="${request.contextPath}//"><i class="fa fa-circle-o text-red"></i> <span>调度中心</span></a></li>
68
+				<li class="nav-click" ><a href="${request.contextPath}/help"><i class="fa fa-circle-o text-yellow"></i><span>使用教程</span></a></li>
148 69
 			</ul>
149 70
 		</section>
150 71
 		<!-- /.sidebar -->
@@ -234,8 +155,8 @@
234 155
 			<b>Version</b> 1.0
235 156
 		</div>
236 157
 		<strong>Copyright &copy; 2015-2015 &nbsp;
237
-			<a href="https://github.com/xuxueli/" target="_blank" >github</a>&nbsp;
238
-			<a href="http://www.cnblogs.com/xuxueli/" target="_blank" >cnblog</a>.
158
+			<a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a>&nbsp;
159
+			<a href="http://www.cnblogs.com/xuxueli/p/5021979.html" target="_blank" >cnblog</a>.
239 160
 		</strong> All rights reserved.
240 161
 	</footer>
241 162
 </#macro>

+ 28 - 5
xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl Parādīt failu

@@ -1,7 +1,7 @@
1 1
 <!DOCTYPE html>
2 2
 <html>
3 3
 <head>
4
-  	<title>AdminLTE 2 | Dashboard</title>
4
+  	<title>调度中心</title>
5 5
   	<#import "/common/common.macro.ftl" as netCommon>
6 6
 	<@netCommon.commonStyle />
7 7
 </head>
@@ -26,18 +26,41 @@
26 26
 		<!-- Main content -->
27 27
 		<section class="content">
28 28
 			<div class="callout callout-info">
29
-				<h4>简介:xxl-job</h4>
30
-				<p>调度管理平台:基于quartz封装实现的的集群任务调度管理平台.</p>
29
+				<h4>简介:XXL_JOB</h4>
30
+				<p>基于quartz封装实现的的集群任务调度管理平台.</p>
31 31
 				<p></p>
32 32
             </div>
33
-            
34
-            <div class="callout callout-info">
33
+            <div class="callout callout-default">
35 34
 				<h4>特点:</h4>
36 35
 				<p>1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.</p>
37 36
 				<p>2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.</p>
38 37
 				<p>3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.</p>
39 38
             </div>
40 39
             
40
+            <div class="callout callout-default">
41
+				<h4>分层模型:</h4>
42
+				<p>1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.</p>
43
+				<p>2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.</p>
44
+				<p>
45
+				 	<div class="row">
46
+				      	<div class="col-xs-offset-1 col-xs-11">
47
+				      		<p>》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.</p>
48
+							<p>》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.</p>
49
+							<p>》通讯模块:负责调度模块和任务模块之间的通讯.</p>
50
+							<p>(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)</p>
51
+				      	</div>      
52
+			   		</div>
53
+				</p>
54
+            </div>
55
+            
56
+            <div class="callout callout-default">
57
+				<h4>调度属性解析 : 发出HTTP调度请求</h4>
58
+				<p>1、调度Key【必填】:调度信息的全局唯一标识.</p>
59
+				<p>2、调度Corn【必填】:调度执行的时间表达式.</p>
60
+				<p>3、调度描述【必填】:调度的简述.</p>
61
+				<p>4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.</p>
62
+				<p>5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.</p>
63
+            </div>
41 64
 		</section>
42 65
 		<!-- /.content -->
43 66
 	</div>

+ 34 - 34
xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl Parādīt failu

@@ -19,10 +19,10 @@
19 19
 	<div class="content-wrapper">
20 20
 		<!-- Content Header (Page header) -->
21 21
 		<section class="content-header">
22
-			<h1>使用教程<small>调度管理平台</small></h1>
22
+			<h1>调度中心<small>调度管理</small></h1>
23 23
 			<ol class="breadcrumb">
24 24
 				<li><a><i class="fa fa-dashboard"></i>调度中心</a></li>
25
-				<li class="active">使用教程</li>
25
+				<li class="active">调度管理</li>
26 26
 			</ol>
27 27
 		</section>
28 28
 		
@@ -32,17 +32,17 @@
32 32
 				<div class="col-xs-12">
33 33
 					<div class="box">
34 34
 			            <div class="box-header">
35
-			            	<h3 class="box-title">任务列表</h3>
36
-			            	<button class="btn btn-primary btn-xs add" type="button">新增</button>
35
+			            	<h3 class="box-title">调度列表</h3>
36
+			            	<button class="btn btn-info btn-xs add" type="button">+新增任务</button>
37 37
 			            </div>
38 38
 			            <div class="box-body">
39 39
 			              	<table id="job_list" class="table table-bordered table-striped">
40 40
 				                <thead>
41 41
 					            	<tr>
42
-					                	<th>任务ID</th>
42
+					                	<th>调度key</th>
43 43
 					                  	<th>cron</th>
44
-					                  	<th>Job类路径</th>
45
-					                  	<th>简介</th>
44
+					                  	<!--<th>类路径</th>-->
45
+					                  	<th>参数</th>
46 46
 					                  	<th>状态</th>
47 47
 					                  	<th>操作</th>
48 48
 					                </tr>
@@ -53,11 +53,13 @@
53 53
 									<tr>
54 54
 					            		<td>${item['TriggerKey'].name}</td>
55 55
 					                  	<td>${item['Trigger'].cronExpression}</td>
56
-					                  	<td>${item['JobDetail'].jobClass}</td>
56
+					                  	<!--<td>${item['JobDetail'].jobClass}</td>-->
57 57
 					                  	<td>
58
-					                  		<#if item['JobDetail'].jobDataMap?exists>
59
-					                  			<#assign job_desc=item['JobDetail'].jobDataMap['job_desc'] />
60
-					                  			${job_desc}
58
+					                  		<#assign jobDataMap = item['JobDetail'].jobDataMap />
59
+					                  		<#if jobDataMap?exists && jobDataMap?keys?size gt 0>
60
+					                  			<#list jobDataMap?keys as key>
61
+					                  				${key}	=	${jobDataMap[key]}	<br>
62
+					                  			</#list>
61 63
 					                  		</#if>
62 64
 					                  	</td>
63 65
 					                  	<td state="${item['TriggerState']}" >
@@ -77,8 +79,9 @@
77 79
 												<#elseif item['TriggerState'] == 'PAUSED'>
78 80
 													<button class="btn btn-info btn-xs job_operate" type="job_resume" type="button">恢复</button>
79 81
 												</#if>
80
-												<button class="btn btn-info btn-xs update" type="button">修改</button>
82
+												<button class="btn btn-info btn-xs job_operate" type="job_trigger" type="button">执行一次</button>
81 83
 											  	<button class="btn btn-danger btn-xs job_operate" type="job_del" type="button">删除</button>
84
+												<button class="btn btn-info btn-xs update" type="button">更新corn</button>
82 85
 											</p>
83 86
 					                  	</td>
84 87
 					                </tr>
@@ -87,10 +90,10 @@
87 90
 				                </tbody>
88 91
 				                <tfoot>
89 92
 					            	<tr>
90
-					                  	<th>任务ID</th>
93
+					                  	<th>调度key</th>
91 94
 					                  	<th>cron</th>
92
-					                  	<th>Job类路径</th>
93
-					                  	<th>简介</th>
95
+					                  	<!--<th>类路径</th>-->
96
+					                  	<th>参数</th>
94 97
 					                  	<th>状态</th>
95 98
 					                  	<th>操作</th>
96 99
 					                </tr>
@@ -114,30 +117,35 @@
114 117
 	<div class="modal-dialog">
115 118
 		<div class="modal-content">
116 119
 			<div class="modal-header">
117
-            	<h4 class="modal-title" >新增调度任务</h4>
120
+            	<h4 class="modal-title" >新增调度信息</h4>
118 121
          	</div>
119 122
          	<div class="modal-body">
120 123
 				<form class="form-horizontal form" role="form" >
121 124
 					<div class="form-group">
122
-						<label for="firstname" class="col-sm-2 control-label">任务Key</label>
123
-						<div class="col-sm-10"><input type="text" class="form-control" name="triggerKeyName" placeholder="请输入任务Key" minlength="4" maxlength="100" ></div>
125
+						<label for="firstname" class="col-sm-3 control-label">任务Key</label>
126
+						<div class="col-sm-9"><input type="text" class="form-control" name="triggerKeyName" placeholder="请输入任务Key" minlength="4" maxlength="100" ></div>
124 127
 					</div>
125 128
 					<div class="form-group">
126
-						<label for="lastname" class="col-sm-2 control-label">任务Corn</label>
127
-						<div class="col-sm-10"><input type="text" class="form-control" name="cronExpression" placeholder="请输入任务Corn[允许修改]" maxlength="100" ></div>
129
+						<label for="lastname" class="col-sm-3 control-label">任务Corn</label>
130
+						<div class="col-sm-9"><input type="text" class="form-control" name="cronExpression" placeholder="请输入任务Corn[允许修改]" maxlength="100" ></div>
128 131
 					</div>
129 132
 					<div class="form-group">
130
-						<label for="lastname" class="col-sm-2 control-label">任务Impl</label>
131
-						<div class="col-sm-10"><input type="text" class="form-control" name="jobClassName" placeholder="请输入任务Impl[不支持修改]" maxlength="100" ></div>
133
+						<label for="lastname" class="col-sm-3 control-label">任务描述</label>
134
+						<div class="col-sm-9"><input type="text" class="form-control" name="job_desc" placeholder="请输入任务描述[不支持修改]" maxlength="200" ></div>
132 135
 					</div>
133 136
 					<div class="form-group">
134
-						<label for="lastname" class="col-sm-2 control-label">任务描述</label>
135
-						<div class="col-sm-10"><input type="text" class="form-control" name="jobDesc" placeholder="请输入任务描述[不支持修改]" maxlength="200" ></div>
137
+						<label for="lastname" class="col-sm-3 control-label">任务URL</label>
138
+						<div class="col-sm-9"><input type="text" class="form-control" name="job_url" placeholder="请输入任务URL[不支持修改]" maxlength="200" ></div>
136 139
 					</div>
137 140
 					<div class="form-group">
138
-						<div class="col-sm-offset-2 col-sm-10">
141
+						<label for="lastname" class="col-sm-3 control-label">任务handler</label>
142
+						<div class="col-sm-9"><input type="text" class="form-control" name="handleName" placeholder="请输入任务handler[不支持修改]" maxlength="200" ></div>
143
+					</div>
144
+					<div class="form-group">
145
+						<div class="col-sm-offset-3 col-sm-9">
139 146
 							<button type="submit" class="btn btn-primary"  >保存</button>
140 147
 							<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
148
+							<button type="button" class="btn btn-info pull-right addParam">+ arg</button>
141 149
 						</div>
142 150
 					</div>
143 151
 				</form>
@@ -151,7 +159,7 @@
151 159
 	<div class="modal-dialog">
152 160
 		<div class="modal-content">
153 161
 			<div class="modal-header">
154
-            	<h4 class="modal-title" >更新配置</h4>
162
+            	<h4 class="modal-title" >更新corn</h4>
155 163
          	</div>
156 164
          	<div class="modal-body">
157 165
 				<form class="form-horizontal form" role="form" >
@@ -164,14 +172,6 @@
164 172
 						<div class="col-sm-10"><input type="text" class="form-control" name="cronExpression" placeholder="请输入任务Corn" maxlength="100" ></div>
165 173
 					</div>
166 174
 					<div class="form-group">
167
-						<label for="lastname" class="col-sm-2 control-label">任务Impl</label>
168
-						<div class="col-sm-10"><input type="text" class="form-control" name="jobClassName" placeholder="请输入任务Impl" maxlength="100" readonly ></div>
169
-					</div>
170
-					<div class="form-group">
171
-						<label for="lastname" class="col-sm-2 control-label">任务描述</label>
172
-						<div class="col-sm-10"><input type="text" class="form-control" name="jobDesc" placeholder="请输入任务描述" maxlength="200" readonly ></div>
173
-					</div>
174
-					<div class="form-group">
175 175
 						<div class="col-sm-offset-2 col-sm-10">
176 176
 							<button type="submit" class="btn btn-primary"  >保存</button>
177 177
 							<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>

+ 4 - 0
xxl-job-admin/src/main/webapp/WEB-INF/web.xml Parādīt failu

@@ -4,6 +4,10 @@
4 4
 	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
5 5
 	id="WebApp_ID" version="2.5">
6 6
 	<display-name>xxl-job-admin</display-name>
7
+	<context-param>
8
+	    <param-name>webAppRootKey</param-name>
9
+	    <param-value>xxl-job-admin</param-value>
10
+	</context-param>
7 11
 
8 12
 	<context-param>
9 13
 		<param-name>contextConfigLocation</param-name>

+ 94 - 46
xxl-job-admin/src/main/webapp/static/js/job.index.1.js Parādīt failu

@@ -41,6 +41,9 @@ $(function() {
41 41
 		} else if ("job_del" == type) {
42 42
 			typeName = "删除";
43 43
 			url = base_url + "/job/remove";
44
+		} else if ("job_trigger" == type) {
45
+			typeName = "执行一次";
46
+			url = base_url + "/job/trigger";
44 47
 		} else {
45 48
 			return;
46 49
 		}
@@ -70,9 +73,16 @@ $(function() {
70 73
 		});
71 74
 	});
72 75
 	
76
+	// jquery.validate 自定义校验 “英文字母开头,只含有英文字母、数字和下划线”
77
+	jQuery.validator.addMethod("myValid01", function(value, element) {
78
+		var length = value.length;
79
+		var valid = /^[a-zA-Z][a-zA-Z0-9_]*$/;
80
+		return this.optional(element) || valid.test(value);
81
+	}, "只支持英文字母开头,只含有英文字母、数字和下划线");
82
+	
73 83
 	// 新增
74 84
 	$(".add").click(function(){
75
-		$('#addModal').modal('show');
85
+		$('#addModal').modal({backdrop: false, keyboard: false}).modal('show');
76 86
 	});
77 87
 	var addModalValidate = $("#addModal .form").validate({
78 88
 		errorElement : 'span',  
@@ -82,17 +92,22 @@ $(function() {
82 92
         	triggerKeyName : {  
83 93
         		required : true ,
84 94
                 minlength: 4,
85
-                maxlength: 100
95
+                maxlength: 100,
96
+                myValid01:true
86 97
             },  
87 98
             cronExpression : {  
88 99
             	required : true ,
89 100
                 maxlength: 100
90 101
             },  
91
-            jobClassName : {  
102
+            job_desc : {  
92 103
             	required : true ,
93
-                maxlength: 100
94
-            },  
95
-            jobDesc : {  
104
+                maxlength: 200
105
+            },
106
+            job_url : {
107
+            	required : true ,
108
+                maxlength: 200
109
+            },
110
+            handleName : {
96 111
             	required : true ,
97 112
                 maxlength: 200
98 113
             }
@@ -100,20 +115,24 @@ $(function() {
100 115
         messages : {  
101 116
         	triggerKeyName : {  
102 117
         		required :"请输入“任务Key”."  ,
103
-                minlength:"“任务Key”不应低于4位",
104
-                maxlength:"“任务Key”不应超过100位"
118
+                minlength:"“任务Key”长度不应低于4位",
119
+                maxlength:"“任务Key”长度不应超过100位"
105 120
             },  
106 121
             cronExpression : {
107 122
             	required :"请输入“任务Corn”."  ,
108
-                maxlength:"“任务Corn”不应超过100位"
109
-            },  
110
-            jobClassName : {
111
-            	required :"请输入“任务Impl”."  ,
112
-                maxlength:"“任务Impl”不应超过100位"
123
+                maxlength:"“任务Corn”长度不应超过100位"
113 124
             },  
114
-            jobDesc : {
125
+            job_desc : {
115 126
             	required :"请输入“任务描述”."  ,
116
-                maxlength:"“任务描述”不应超过200位"
127
+                maxlength:"“任务描述”长度不应超过200位"
128
+            },  
129
+            job_url : {
130
+            	required :"请输入“任务URL”."  ,
131
+                maxlength:"“任务URL”长度不应超过200位"
132
+            },
133
+            handleName : {
134
+            	required : "请输入“任务handler”."  ,
135
+                maxlength: "“任务handler”长度不应超过200位"
117 136
             }
118 137
         }, 
119 138
 		highlight : function(element) {  
@@ -127,32 +146,77 @@ $(function() {
127 146
             element.parent('div').append(error);  
128 147
         },
129 148
         submitHandler : function(form) {
130
-    		$.post(base_url + "/job/add", $("#addModal .form").serialize(), function(data, status) {
131
-    			if (data.code == "200") {
132
-    				ComAlert.show(1, "新增调度任务成功", function(){
133
-    					window.location.reload();
134
-    				});
135
-    			} else {
136
-    				if (data.msg) {
137
-    					ComAlert.show(2, data.msg);
138
-					} else {
139
-						ComAlert.show(2, "新增失败");
149
+        	
150
+        	var triggerKeyName = $('#addModal input[name="triggerKeyName"]').val();
151
+        	var cronExpression = $('#addModal input[name="cronExpression"]').val();
152
+        	var job_desc = $('#addModal input[name="job_desc"]').val();
153
+        	var job_url = $('#addModal input[name="job_url"]').val();
154
+        	var handleName = $('#addModal input[name="handleName"]').val();
155
+        	
156
+        	var paramStr = 'triggerKeyName=' + triggerKeyName + 
157
+        		'&cronExpression=' + cronExpression + 
158
+        		'&job_desc=' + job_desc +
159
+        		'&job_url=' + job_url +
160
+        		'&handleName=' + handleName;
161
+        	
162
+        	var ifFin = true;
163
+        	$('#addModal .newParam').each(function(){
164
+        		ifFin = false;
165
+        		var key = $(this).find('input[name="key"]').val();
166
+        		var value = $(this).find('input[name="value"]').val();
167
+        		if (!key) {
168
+        			ComAlert.show(2, "新增参数key不可为空");
169
+        			return;
170
+				} else {
171
+					if(!/^[a-zA-Z][a-zA-Z0-9_]*$/.test(key)){
172
+						ComAlert.show(2, "新增参数key不合法, 只支持英文字母开头,只含有英文字母、数字和下划线");
173
+	        			return;
140 174
 					}
141
-    			}
142
-    		});
175
+				}
176
+        		paramStr += "&" + key + "=" + value;
177
+        		ifFin = true;
178
+        	});
179
+        	
180
+        	if(ifFin){
181
+        		$.post(base_url + "/job/add", paramStr, function(data, status) {
182
+        			if (data.code == "200") {
183
+        				ComAlert.show(1, "新增调度任务成功", function(){
184
+        					window.location.reload();
185
+        				});
186
+        			} else {
187
+        				if (data.msg) {
188
+        					ComAlert.show(2, data.msg);
189
+        				} else {
190
+        					ComAlert.show(2, "新增失败");
191
+        				}
192
+        			}
193
+        		});
194
+        	}
143 195
 		}
144 196
 	});
145 197
 	$("#addModal").on('hide.bs.modal', function () {
146 198
 		$("#addModal .form")[0].reset()
147 199
 	});
148 200
 	
201
+	// 新增-添加参数
202
+	$("#addModal .addParam").on('click', function () {
203
+		var html = '<div class="form-group newParam">'+
204
+				'<label for="lastname" class="col-sm-2 control-label">参数&nbsp;<button class="btn btn-danger btn-xs removeParam" type="button">移除</button></label>'+
205
+				'<div class="col-sm-4"><input type="text" class="form-control" name="key" placeholder="请输入参数key[将会强转为String]" maxlength="200" /></div>'+
206
+				'<div class="col-sm-6"><input type="text" class="form-control" name="value" placeholder="请输入参数value[将会强转为String]" maxlength="200" /></div>'+
207
+			'</div>';
208
+		$(this).parents('.form-group').parent().append(html);
209
+		
210
+		$("#addModal .removeParam").on('click', function () {
211
+			$(this).parents('.form-group').remove();
212
+		});
213
+	});
214
+	
149 215
 	// 更新
150 216
 	$(".update").click(function(){
151 217
 		$("#updateModal .form input[name='triggerKeyName']").val($(this).parent('p').attr("name"));
152 218
 		$("#updateModal .form input[name='cronExpression']").val($(this).parent('p').attr("cronExpression"));
153
-		$("#updateModal .form input[name='jobClassName']").val($(this).parent('p').attr("jobClassName"));
154
-		$("#updateModal .form input[name='jobDesc']").val($(this).parent('p').attr("jobDesc"));
155
-		$('#updateModal').modal('show');
219
+		$('#updateModal').modal({backdrop: false, keyboard: false}).modal('show');
156 220
 	});
157 221
 	var updateModalValidate = $("#updateModal .form").validate({
158 222
 		errorElement : 'span',  
@@ -167,14 +231,6 @@ $(function() {
167 231
             cronExpression : {  
168 232
             	required : true ,
169 233
                 maxlength: 100
170
-            },  
171
-            jobClassName : {  
172
-            	required : true ,
173
-                maxlength: 100
174
-            },  
175
-            jobDesc : {  
176
-            	required : true ,
177
-                maxlength: 200
178 234
             }
179 235
         }, 
180 236
         messages : {  
@@ -186,14 +242,6 @@ $(function() {
186 242
             cronExpression : {
187 243
             	required :"请输入“任务Corn”."  ,
188 244
                 maxlength:"“任务Corn”不应超过100位"
189
-            },  
190
-            jobClassName : {
191
-            	required :"请输入“任务Impl”."  ,
192
-                maxlength:"“任务Impl”不应超过100位"
193
-            },  
194
-            jobDesc : {
195
-            	required :"请输入“任务描述”."  ,
196
-                maxlength:"“任务描述”不应超过200位"
197 245
             }
198 246
         }, 
199 247
 		highlight : function(element) {  

+ 32 - 0
xxl-job-client-demo/.classpath Parādīt failu

@@ -0,0 +1,32 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<classpath>
3
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
4
+		<attributes>
5
+			<attribute name="optional" value="true"/>
6
+			<attribute name="maven.pomderived" value="true"/>
7
+		</attributes>
8
+	</classpathentry>
9
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
10
+		<attributes>
11
+			<attribute name="maven.pomderived" value="true"/>
12
+		</attributes>
13
+	</classpathentry>
14
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
15
+		<attributes>
16
+			<attribute name="optional" value="true"/>
17
+			<attribute name="maven.pomderived" value="true"/>
18
+		</attributes>
19
+	</classpathentry>
20
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
21
+		<attributes>
22
+			<attribute name="maven.pomderived" value="true"/>
23
+		</attributes>
24
+	</classpathentry>
25
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
26
+		<attributes>
27
+			<attribute name="maven.pomderived" value="true"/>
28
+			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
29
+		</attributes>
30
+	</classpathentry>
31
+	<classpathentry kind="output" path="target/classes"/>
32
+</classpath>

+ 1 - 0
xxl-job-client-demo/.gitignore Parādīt failu

@@ -0,0 +1 @@
1
+/target/

+ 42 - 0
xxl-job-client-demo/.project Parādīt failu

@@ -0,0 +1,42 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>xxl-job-client-demo</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+		<buildCommand>
14
+			<name>org.eclipse.jdt.core.javabuilder</name>
15
+			<arguments>
16
+			</arguments>
17
+		</buildCommand>
18
+		<buildCommand>
19
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
20
+			<arguments>
21
+			</arguments>
22
+		</buildCommand>
23
+		<buildCommand>
24
+			<name>org.eclipse.wst.validation.validationbuilder</name>
25
+			<arguments>
26
+			</arguments>
27
+		</buildCommand>
28
+		<buildCommand>
29
+			<name>org.eclipse.m2e.core.maven2Builder</name>
30
+			<arguments>
31
+			</arguments>
32
+		</buildCommand>
33
+	</buildSpec>
34
+	<natures>
35
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
36
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
37
+		<nature>org.eclipse.jdt.core.javanature</nature>
38
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
39
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
40
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
41
+	</natures>
42
+</projectDescription>

+ 13 - 0
xxl-job-client-demo/.settings/.jsdtscope Parādīt failu

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<classpath>
3
+	<classpathentry kind="src" path="src/main/webapp"/>
4
+	<classpathentry excluding="**/*.min.js|**/node_modules/*|**/bower_components/*" kind="src" path="target/m2e-wtp/web-resources"/>
5
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
6
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
7
+		<attributes>
8
+			<attribute name="hide" value="true"/>
9
+		</attributes>
10
+	</classpathentry>
11
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
12
+	<classpathentry kind="output" path=""/>
13
+</classpath>

+ 2 - 0
xxl-job-client-demo/.settings/org.eclipse.core.resources.prefs Parādīt failu

@@ -0,0 +1,2 @@
1
+eclipse.preferences.version=1
2
+encoding//src/main/java=UTF8

+ 8 - 0
xxl-job-client-demo/.settings/org.eclipse.jdt.core.prefs Parādīt failu

@@ -0,0 +1,8 @@
1
+eclipse.preferences.version=1
2
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
4
+org.eclipse.jdt.core.compiler.compliance=1.6
5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
8
+org.eclipse.jdt.core.compiler.source=1.6

+ 4 - 0
xxl-job-client-demo/.settings/org.eclipse.m2e.core.prefs Parādīt failu

@@ -0,0 +1,4 @@
1
+activeProfiles=
2
+eclipse.preferences.version=1
3
+resolveWorkspaceProjects=true
4
+version=1

+ 13 - 0
xxl-job-client-demo/.settings/org.eclipse.wst.common.component Parādīt failu

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
2
+    <wb-module deploy-name="xxl-job-client-demo">
3
+        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
4
+        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
5
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
6
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
7
+        <dependent-module archiveName="xxl-job-client-1.1.2-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/xxl-job-client/xxl-job-client">
8
+            <dependency-type>uses</dependency-type>
9
+        </dependent-module>
10
+        <property name="context-root" value="xxl-job-client-demo"/>
11
+        <property name="java-output-path" value="/xxl-job-client-demo/target/classes"/>
12
+    </wb-module>
13
+</project-modules>

+ 7 - 0
xxl-job-client-demo/.settings/org.eclipse.wst.common.project.facet.core.xml Parādīt failu

@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<faceted-project>
3
+  <fixed facet="wst.jsdt.web"/>
4
+  <installed facet="java" version="1.6"/>
5
+  <installed facet="jst.web" version="2.5"/>
6
+  <installed facet="wst.jsdt.web" version="1.0"/>
7
+</faceted-project>

+ 1 - 0
xxl-job-client-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container Parādīt failu

@@ -0,0 +1 @@
1
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary

+ 1 - 0
xxl-job-client-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name Parādīt failu

@@ -0,0 +1 @@
1
+Window

+ 2 - 0
xxl-job-client-demo/.settings/org.eclipse.wst.validation.prefs Parādīt failu

@@ -0,0 +1,2 @@
1
+disabled=06target
2
+eclipse.preferences.version=1

branch-dianping/dianping-job-client-demo/pom.xml → xxl-job-client-demo/pom.xml Parādīt failu

@@ -2,14 +2,13 @@
2 2
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 3
 	<modelVersion>4.0.0</modelVersion>
4 4
 	<parent>
5
-		<groupId>com.dianping</groupId>
6
-		<artifactId>dianping-job</artifactId>
7
-		<version>0.0.1-SNAPSHOT</version>
5
+		<groupId>com.xxl</groupId>
6
+		<artifactId>xxl-job</artifactId>
7
+		<version>1.1.1-SNAPSHOT</version>
8 8
 	</parent>
9
-	<artifactId>dianping-job-client-demo</artifactId>
9
+	<artifactId>xxl-job-client-demo</artifactId>
10
+	<version>1.1.2-SNAPSHOT</version>
10 11
 	<packaging>war</packaging>
11
-	<name>dianping-job-client-demo</name>
12
-	<url>http://maven.apache.org</url>
13 12
 
14 13
 	<properties>
15 14
 		<spring.version>3.2.14.RELEASE</spring.version>
@@ -52,11 +51,11 @@
52 51
 			<version>1.7.5</version>
53 52
 		</dependency>
54 53
 		
55
-		<!-- dianping-job-client -->
54
+		<!-- xxl-job-client -->
56 55
 		<dependency>
57
-			<groupId>com.dianping</groupId>
58
-			<artifactId>dianping-job-client</artifactId>
59
-			<version>1.0.1-SNAPSHOT</version>
56
+			<groupId>com.xxl</groupId>
57
+			<artifactId>xxl-job-client</artifactId>
58
+			<version>1.1.2-SNAPSHOT</version>
60 59
 		</dependency>
61 60
 		
62 61
 	</dependencies>

branch-dianping/dianping-job-client-demo/src/main/java/com/dianping/job/service/handler/DemoJobHandler.java → xxl-job-client-demo/src/main/java/com/xxl/job/service/handler/DemoJobHandler.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.service.handler;
1
+package com.xxl.job.service.handler;
2 2
 
3 3
 import java.util.Map;
4 4
 import java.util.Random;
@@ -8,8 +8,8 @@ import org.slf4j.Logger;
8 8
 import org.slf4j.LoggerFactory;
9 9
 import org.springframework.stereotype.Service;
10 10
 
11
-import com.dianping.job.client.handler.HandlerRepository;
12
-import com.dianping.job.client.handler.IJobHandler;
11
+import com.xxl.job.client.handler.HandlerRepository;
12
+import com.xxl.job.client.handler.IJobHandler;
13 13
 
14 14
 /**
15 15
  * demo job handler

branch-dianping/dianping-job-client-demo/src/main/resources/applicationcontext-base.xml → xxl-job-client-demo/src/main/resources/applicationcontext-base.xml Parādīt failu

@@ -9,7 +9,6 @@
9 9
            http://www.springframework.org/schema/util 
10 10
            http://www.springframework.org/schema/util/spring-util.xsd">
11 11
 
12
-	<context:annotation-config />
13
-	<context:component-scan base-package="com.dianping.job.service" />
12
+	<context:component-scan base-package="com.xxl.job.service" />
14 13
 
15 14
 </beans>

+ 10 - 0
xxl-job-client-demo/src/main/resources/log4j.properties Parādīt failu

@@ -0,0 +1,10 @@
1
+log4j.rootLogger=info,console
2
+
3
+log4j.appender.console=org.apache.log4j.ConsoleAppender
4
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
5
+log4j.appender.console.layout.ConversionPattern=%d - xxl-job-client-demo - %p [%c] - <%m>%n
6
+
7
+log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender
8
+log4j.appender.logFile.File=${catalina.base}/logs/xxl-job-client-demo.log
9
+log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
10
+log4j.appender.logFile.layout.ConversionPattern=%d - xxl-job-client-demo - %p [%c] - <%m>%n

branch-dianping/dianping-job-client-demo/src/main/webapp/WEB-INF/web.xml → xxl-job-client-demo/src/main/webapp/WEB-INF/web.xml Parādīt failu

@@ -3,7 +3,11 @@
3 3
 	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
4 4
 	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
5 5
 	id="WebApp_ID" version="2.5">
6
-
6
+	<context-param>
7
+	    <param-name>webAppRootKey</param-name>
8
+	    <param-value>xxl-job-client-demo</param-value>
9
+	</context-param>
10
+	
7 11
 	<context-param>
8 12
 		<param-name>contextConfigLocation</param-name>
9 13
 		<param-value>classpath*:applicationcontext-*.xml</param-value>
@@ -16,18 +20,17 @@
16 20
 		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
17 21
 	</listener>
18 22
 	
19
-	<!-- Dianping Job Servlet -->
23
+	<!-- Xxl Job Servlet -->
20 24
 	<servlet>
21
-		<servlet-name>DianpingJobServlet</servlet-name>
22
-		<servlet-class>com.dianping.job.client.netcom.http.DianpingJobServlet</servlet-class>
25
+		<servlet-name>XxlJobServlet</servlet-name>
26
+		<servlet-class>com.xxl.job.client.netcom.http.XxlJobServlet</servlet-class>
23 27
 		<load-on-startup>1</load-on-startup>
24 28
 	</servlet>
25 29
 	<servlet-mapping>
26
-		<servlet-name>DianpingJobServlet</servlet-name>
27
-		<url-pattern>/dianpingJobServlet</url-pattern>
30
+		<servlet-name>XxlJobServlet</servlet-name>
31
+		<url-pattern>/xxlJobServlet</url-pattern>
28 32
 	</servlet-mapping>
29 33
 	
30
-	<display-name>clock-job-web</display-name>
31 34
 	<welcome-file-list>
32 35
 		<welcome-file>index.html</welcome-file>
33 36
 	</welcome-file-list>

branch-dianping/dianping-job-client-demo/src/main/webapp/index.html → xxl-job-client-demo/src/main/webapp/index.html Parādīt failu


+ 27 - 0
xxl-job-client/.classpath Parādīt failu

@@ -0,0 +1,27 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<classpath>
3
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
4
+		<attributes>
5
+			<attribute name="optional" value="true"/>
6
+			<attribute name="maven.pomderived" value="true"/>
7
+		</attributes>
8
+	</classpathentry>
9
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
10
+		<attributes>
11
+			<attribute name="optional" value="true"/>
12
+			<attribute name="maven.pomderived" value="true"/>
13
+		</attributes>
14
+	</classpathentry>
15
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
16
+		<attributes>
17
+			<attribute name="maven.pomderived" value="true"/>
18
+		</attributes>
19
+	</classpathentry>
20
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
21
+		<attributes>
22
+			<attribute name="maven.pomderived" value="true"/>
23
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
24
+		</attributes>
25
+	</classpathentry>
26
+	<classpathentry kind="output" path="target/classes"/>
27
+</classpath>

+ 1 - 0
xxl-job-client/.gitignore Parādīt failu

@@ -0,0 +1 @@
1
+/target/

+ 36 - 0
xxl-job-client/.project Parādīt failu

@@ -0,0 +1,36 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>xxl-job-client</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+		<buildCommand>
14
+			<name>org.eclipse.jdt.core.javabuilder</name>
15
+			<arguments>
16
+			</arguments>
17
+		</buildCommand>
18
+		<buildCommand>
19
+			<name>org.eclipse.wst.validation.validationbuilder</name>
20
+			<arguments>
21
+			</arguments>
22
+		</buildCommand>
23
+		<buildCommand>
24
+			<name>org.eclipse.m2e.core.maven2Builder</name>
25
+			<arguments>
26
+			</arguments>
27
+		</buildCommand>
28
+	</buildSpec>
29
+	<natures>
30
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
31
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
32
+		<nature>org.eclipse.jdt.core.javanature</nature>
33
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
34
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
35
+	</natures>
36
+</projectDescription>

+ 2 - 0
xxl-job-client/.settings/org.eclipse.core.resources.prefs Parādīt failu

@@ -0,0 +1,2 @@
1
+eclipse.preferences.version=1
2
+encoding//src/main/java=UTF8

+ 8 - 0
xxl-job-client/.settings/org.eclipse.jdt.core.prefs Parādīt failu

@@ -0,0 +1,8 @@
1
+eclipse.preferences.version=1
2
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
4
+org.eclipse.jdt.core.compiler.compliance=1.6
5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
8
+org.eclipse.jdt.core.compiler.source=1.6

+ 4 - 0
xxl-job-client/.settings/org.eclipse.m2e.core.prefs Parādīt failu

@@ -0,0 +1,4 @@
1
+activeProfiles=
2
+eclipse.preferences.version=1
3
+resolveWorkspaceProjects=true
4
+version=1

+ 5 - 0
xxl-job-client/.settings/org.eclipse.wst.common.component Parādīt failu

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
2
+    <wb-module deploy-name="xxl-job-client">
3
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
4
+    </wb-module>
5
+</project-modules>

+ 5 - 0
xxl-job-client/.settings/org.eclipse.wst.common.project.facet.core.xml Parādīt failu

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<faceted-project>
3
+  <installed facet="java" version="1.6"/>
4
+  <installed facet="jst.utility" version="1.0"/>
5
+</faceted-project>

+ 2 - 0
xxl-job-client/.settings/org.eclipse.wst.validation.prefs Parādīt failu

@@ -0,0 +1,2 @@
1
+disabled=06target
2
+eclipse.preferences.version=1

branch-dianping/dianping-job-client/pom.xml → xxl-job-client/pom.xml Parādīt failu

@@ -2,14 +2,12 @@
2 2
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 3
 	<modelVersion>4.0.0</modelVersion>
4 4
 	<parent>
5
-		<groupId>com.dianping</groupId>
6
-		<artifactId>dianping-job</artifactId>
7
-		<version>0.0.1-SNAPSHOT</version>
5
+		<groupId>com.xxl</groupId>
6
+		<artifactId>xxl-job</artifactId>
7
+		<version>1.1.1-SNAPSHOT</version>
8 8
 	</parent>
9
-	<artifactId>dianping-job-client</artifactId>
10
-	<version>1.0.1-SNAPSHOT</version>
11
-	<name>dianping-job-client</name>
12
-	<url>http://maven.apache.org</url>
9
+	<artifactId>xxl-job-client</artifactId>
10
+	<version>1.1.2-SNAPSHOT</version>
13 11
 
14 12
 	<dependencies>
15 13
 

branch-dianping/dianping-job-client/src/main/java/com/dianping/job/client/handler/HandlerRepository.java → xxl-job-client/src/main/java/com/xxl/job/client/handler/HandlerRepository.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.client.handler;
1
+package com.xxl.job.client.handler;
2 2
 
3 3
 import java.io.PrintWriter;
4 4
 import java.io.StringWriter;
@@ -10,8 +10,9 @@ import java.util.concurrent.TimeUnit;
10 10
 import org.slf4j.Logger;
11 11
 import org.slf4j.LoggerFactory;
12 12
 
13
-import com.dianping.job.client.handler.IJobHandler.JobHandleStatus;
14
-import com.dianping.job.client.handler.IJobHandler.JobTriggerStatus;
13
+import com.xxl.job.client.handler.IJobHandler.JobHandleStatus;
14
+import com.xxl.job.client.handler.IJobHandler.JobTriggerStatus;
15
+
15 16
 
16 17
 /**
17 18
  * handler repository
@@ -38,7 +39,7 @@ public class HandlerRepository {
38 39
 		HandlerThread handlerThread = new HandlerThread(handleName);
39 40
 		handlerThread.start();
40 41
 		handlerTreadMap.put(handleName, handlerThread);
41
-		logger.info(">>>>>>>>>>> dianping-job regist handler success, handleName:{}, handler:{}, handlerDateQueue:{}, handlerThread:{}", 
42
+		logger.info(">>>>>>>>>>> xxl-job regist handler success, handleName:{}, handler:{}, handlerDateQueue:{}, handlerThread:{}", 
42 43
 				new Object[]{handleName, handler, handlerDateQueue, handlerThread});
43 44
 	}
44 45
 	
@@ -71,7 +72,7 @@ public class HandlerRepository {
71 72
 						jobHandleDetail = out.toString();
72 73
 					}
73 74
 					String _triggerUuid = handlerDate.get(triggerUuid);
74
-					logger.info("<<<<<<<<<<< dianping-job thread handle, _triggerUuid:{}, _handleName:{}, jobHandleStatus:{}, jobHandleDetail:{}, thread:{}", 
75
+					logger.info("<<<<<<<<<<< xxl-job thread handle, _triggerUuid:{}, _handleName:{}, jobHandleStatus:{}, jobHandleDetail:{}, thread:{}", 
75 76
 							new Object[]{_triggerUuid, _handleName, jobHandleStatus, jobHandleDetail, this});
76 77
 				} else {
77 78
 					try {
@@ -98,7 +99,7 @@ public class HandlerRepository {
98 99
 					if (handlerDateQueue == null) {
99 100
 						handlerDateQueue = new LinkedBlockingQueue<Map<String, String>>();
100 101
 						handlerDataQueueMap.put(handleName, handlerDateQueue);
101
-						logger.info(">>>>>>>>>>> dianping-job handler lazy fresh handlerDateQueue, handleName:{}, handler:{}, handlerDateQueue:{}", 
102
+						logger.info(">>>>>>>>>>> xxl-job handler lazy fresh handlerDateQueue, handleName:{}, handler:{}, handlerDateQueue:{}", 
102 103
 								new Object[]{handleName, handler, handlerDateQueue});
103 104
 					}
104 105
 					handlerDateQueue.offer(_param);
@@ -109,7 +110,7 @@ public class HandlerRepository {
109 110
 						HandlerThread handlerThread = new HandlerThread(handleName);
110 111
 						handlerThread.start();
111 112
 						handlerTreadMap.put(handleName, handlerThread);
112
-						logger.info(">>>>>>>>>>> dianping-job handler lazy fresh thread, handleName:{}, handler:{}, handlerThread:{}", 
113
+						logger.info(">>>>>>>>>>> xxl-job handler lazy fresh thread, handleName:{}, handler:{}, handlerThread:{}", 
113 114
 								new Object[]{handleName, handler, handlerThread});
114 115
 					}
115 116
 					_triggerStatus = JobTriggerStatus.SUCCESS;
@@ -122,7 +123,7 @@ public class HandlerRepository {
122 123
 			e.printStackTrace(new PrintWriter(out));
123 124
 			_triggerDetailLog = out.toString();
124 125
 		}
125
-		logger.info(">>>>>>>>>>> dianping-job pushHandleQueue, triggerUuid:{}, handleName, _triggerStatus:{}, _triggerDetailLog", 
126
+		logger.info(">>>>>>>>>>> xxl-job pushHandleQueue, triggerUuid:{}, handleName, _triggerStatus:{}, _triggerDetailLog", 
126 127
 				new Object[]{triggerUuid, handleName, _triggerStatus, _triggerDetailLog});
127 128
 		
128 129
 		String responseBody = _triggerStatus.name();

branch-dianping/dianping-job-client/src/main/java/com/dianping/job/client/handler/IJobHandler.java → xxl-job-client/src/main/java/com/xxl/job/client/handler/IJobHandler.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.client.handler;
1
+package com.xxl.job.client.handler;
2 2
 
3 3
 import java.util.Map;
4 4
 

branch-dianping/dianping-job-client/src/main/java/com/dianping/job/client/netcom/http/DianpingJobServlet.java → xxl-job-client/src/main/java/com/xxl/job/client/netcom/http/XxlJobServlet.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.client.netcom.http;
1
+package com.xxl.job.client.netcom.http;
2 2
 
3 3
 
4 4
 import java.io.IOException;
@@ -10,19 +10,20 @@ import javax.servlet.http.HttpServlet;
10 10
 import javax.servlet.http.HttpServletRequest;
11 11
 import javax.servlet.http.HttpServletResponse;
12 12
 
13
-import com.dianping.job.client.handler.HandlerRepository;
13
+import com.xxl.job.client.handler.HandlerRepository;
14
+
14 15
 
15 16
 /**
16 17
  * remote job client on http
17 18
  * @author xuxueli 2015-12-19 18:36:47
18 19
  */
19
-public class DianpingJobServlet extends HttpServlet {
20
+public class XxlJobServlet extends HttpServlet {
20 21
 	private static final long serialVersionUID = 1L;
21 22
 
22 23
     /**
23 24
      * Default constructor. 
24 25
      */
25
-    public DianpingJobServlet() {
26
+    public XxlJobServlet() {
26 27
         // TODO Auto-generated constructor stub
27 28
     }
28 29
     

branch-dianping/dianping-job-client/src/main/java/com/dianping/job/client/util/HttpUtil.java → xxl-job-client/src/main/java/com/xxl/job/client/util/HttpUtil.java Parādīt failu

@@ -1,4 +1,4 @@
1
-package com.dianping.job.client.util;
1
+package com.xxl.job.client.util;
2 2
 
3 3
 import java.io.IOException;
4 4
 

+ 32 - 0
xxl-job-simple/.classpath Parādīt failu

@@ -0,0 +1,32 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<classpath>
3
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
4
+		<attributes>
5
+			<attribute name="optional" value="true"/>
6
+			<attribute name="maven.pomderived" value="true"/>
7
+		</attributes>
8
+	</classpathentry>
9
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
10
+		<attributes>
11
+			<attribute name="maven.pomderived" value="true"/>
12
+		</attributes>
13
+	</classpathentry>
14
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
15
+		<attributes>
16
+			<attribute name="optional" value="true"/>
17
+			<attribute name="maven.pomderived" value="true"/>
18
+		</attributes>
19
+	</classpathentry>
20
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
21
+		<attributes>
22
+			<attribute name="maven.pomderived" value="true"/>
23
+		</attributes>
24
+	</classpathentry>
25
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
26
+		<attributes>
27
+			<attribute name="maven.pomderived" value="true"/>
28
+			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
29
+		</attributes>
30
+	</classpathentry>
31
+	<classpathentry kind="output" path="target/classes"/>
32
+</classpath>

+ 1 - 0
xxl-job-simple/.gitignore Parādīt failu

@@ -0,0 +1 @@
1
+/target/

+ 42 - 0
xxl-job-simple/.project Parādīt failu

@@ -0,0 +1,42 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>xxl-job-simple</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+		<buildCommand>
14
+			<name>org.eclipse.jdt.core.javabuilder</name>
15
+			<arguments>
16
+			</arguments>
17
+		</buildCommand>
18
+		<buildCommand>
19
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
20
+			<arguments>
21
+			</arguments>
22
+		</buildCommand>
23
+		<buildCommand>
24
+			<name>org.eclipse.wst.validation.validationbuilder</name>
25
+			<arguments>
26
+			</arguments>
27
+		</buildCommand>
28
+		<buildCommand>
29
+			<name>org.eclipse.m2e.core.maven2Builder</name>
30
+			<arguments>
31
+			</arguments>
32
+		</buildCommand>
33
+	</buildSpec>
34
+	<natures>
35
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
36
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
37
+		<nature>org.eclipse.jdt.core.javanature</nature>
38
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
39
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
40
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
41
+	</natures>
42
+</projectDescription>

+ 13 - 0
xxl-job-simple/.settings/.jsdtscope Parādīt failu

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<classpath>
3
+	<classpathentry kind="src" path="src/main/webapp"/>
4
+	<classpathentry excluding="**/*.min.js|**/node_modules/*|**/bower_components/*" kind="src" path="target/m2e-wtp/web-resources"/>
5
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
6
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
7
+		<attributes>
8
+			<attribute name="hide" value="true"/>
9
+		</attributes>
10
+	</classpathentry>
11
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
12
+	<classpathentry kind="output" path=""/>
13
+</classpath>

+ 3 - 0
xxl-job-simple/.settings/org.eclipse.core.resources.prefs Parādīt failu

@@ -0,0 +1,3 @@
1
+eclipse.preferences.version=1
2
+encoding//src/main/java=UTF8
3
+encoding//src/test/java=UTF8

+ 8 - 0
xxl-job-simple/.settings/org.eclipse.jdt.core.prefs Parādīt failu

@@ -0,0 +1,8 @@
1
+eclipse.preferences.version=1
2
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
4
+org.eclipse.jdt.core.compiler.compliance=1.6
5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
8
+org.eclipse.jdt.core.compiler.source=1.6

+ 4 - 0
xxl-job-simple/.settings/org.eclipse.m2e.core.prefs Parādīt failu

@@ -0,0 +1,4 @@
1
+activeProfiles=
2
+eclipse.preferences.version=1
3
+resolveWorkspaceProjects=true
4
+version=1

+ 10 - 0
xxl-job-simple/.settings/org.eclipse.wst.common.component Parādīt failu

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
2
+    <wb-module deploy-name="xxl-job-simple">
3
+        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
4
+        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
5
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
6
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
7
+        <property name="context-root" value="xxl-job-simple"/>
8
+        <property name="java-output-path" value="/xxl-job-simple/target/classes"/>
9
+    </wb-module>
10
+</project-modules>

+ 7 - 0
xxl-job-simple/.settings/org.eclipse.wst.common.project.facet.core.xml Parādīt failu

@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<faceted-project>
3
+  <fixed facet="wst.jsdt.web"/>
4
+  <installed facet="java" version="1.6"/>
5
+  <installed facet="jst.web" version="2.5"/>
6
+  <installed facet="wst.jsdt.web" version="1.0"/>
7
+</faceted-project>

+ 1 - 0
xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.container Parādīt failu

@@ -0,0 +1 @@
1
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary

+ 1 - 0
xxl-job-simple/.settings/org.eclipse.wst.jsdt.ui.superType.name Parādīt failu

@@ -0,0 +1 @@
1
+Window

+ 2 - 0
xxl-job-simple/.settings/org.eclipse.wst.validation.prefs Parādīt failu

@@ -0,0 +1,2 @@
1
+disabled=06target
2
+eclipse.preferences.version=1

branch-dianping/dianping-job-web/pom.xml → xxl-job-simple/pom.xml Parādīt failu

@@ -2,16 +2,14 @@
2 2
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 3
 	<modelVersion>4.0.0</modelVersion>
4 4
 	<parent>
5
-		<groupId>com.dianping</groupId>
6
-		<artifactId>dianping-job</artifactId>
7
-		<version>0.0.1-SNAPSHOT</version>
5
+		<groupId>com.xxl</groupId>
6
+		<artifactId>xxl-job</artifactId>
7
+		<version>1.1.1-SNAPSHOT</version>
8 8
 	</parent>
9
-	<artifactId>dianping-job-web</artifactId>
10
-	<version>1.0.1-SNAPSHOT</version>
9
+	<artifactId>xxl-job-simple</artifactId>
10
+	<version>1.1.2-SNAPSHOT</version>
11 11
 	<packaging>war</packaging>
12
-    <name>dianping-job-web</name>
13
-    <url>http://maven.apache.org</url>
14
-
12
+	
15 13
 	<properties>
16 14
 		<spring.version>3.2.14.RELEASE</spring.version>
17 15
 	</properties>
@@ -131,20 +129,6 @@
131 129
 			<artifactId>quartz</artifactId>
132 130
 			<version>2.2.1</version>
133 131
 		</dependency>
134
-		
135
-		<!-- httpclient -->
136
-		<dependency>
137
-			<groupId>org.apache.httpcomponents</groupId>
138
-			<artifactId>httpclient</artifactId>
139
-			<version>4.3.6</version>
140
-		</dependency>
141
-		
142
-		<!-- dianping-job-client -->
143
-		<dependency>
144
-			<groupId>com.dianping</groupId>
145
-			<artifactId>dianping-job-client</artifactId>
146
-			<version>1.0.1-SNAPSHOT</version>
147
-		</dependency>
148 132
 
149 133
 	</dependencies>
150 134
 

xxl-job-admin/src/main/java/com/xxl/controller/IndexController.java → xxl-job-simple/src/main/java/com/xxl/controller/IndexController.java Parādīt failu

@@ -17,11 +17,10 @@ import com.xxl.quartz.DynamicSchedulerUtil;
17 17
 import com.xxl.quartz.ReturnT;
18 18
 
19 19
 @Controller
20
-@RequestMapping("/job")
21 20
 public class IndexController {
22 21
 
23 22
 	
24
-	@RequestMapping("/index")
23
+	@RequestMapping("")
25 24
 	public String index(Model model) {
26 25
 		List<Map<String, Object>> jobList = DynamicSchedulerUtil.getJobList();
27 26
 		model.addAttribute("jobList", jobList);

xxl-job-admin/src/main/java/com/xxl/quartz/DynamicSchedulerUtil.java → xxl-job-simple/src/main/java/com/xxl/quartz/DynamicSchedulerUtil.java Parādīt failu


xxl-job-admin/src/main/java/com/xxl/quartz/ReturnT.java → xxl-job-simple/src/main/java/com/xxl/quartz/ReturnT.java Parādīt failu


xxl-job-admin/src/main/java/com/xxl/service/ITriggerService.java → xxl-job-simple/src/main/java/com/xxl/service/ITriggerService.java Parādīt failu


xxl-job-admin/src/main/java/com/xxl/service/impl/TriggerServiceImpl.java → xxl-job-simple/src/main/java/com/xxl/service/impl/TriggerServiceImpl.java Parādīt failu


xxl-job-admin/src/main/java/com/xxl/service/job/JobDetailDemo.java → xxl-job-simple/src/main/java/com/xxl/service/job/JobDetailDemo.java Parādīt failu


xxl-job-admin/src/main/java/com/xxl/service/job/TestDynamicJob.java → xxl-job-simple/src/main/java/com/xxl/service/job/TestDynamicJob.java Parādīt failu


branch-dianping/dianping-job-web/src/main/resources/applicationcontext-base.xml → xxl-job-simple/src/main/resources/applicationcontext-base.xml Parādīt failu

@@ -10,7 +10,7 @@
10 10
            http://www.springframework.org/schema/util/spring-util.xsd">
11 11
 
12 12
 	<context:annotation-config />
13
-	<context:component-scan base-package="com.dianping.job.service" />
13
+	<context:component-scan base-package="com.xxl.service.impl, com.xxl.dao.impl" />
14 14
 
15 15
 	<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
16 16
 		<property name="templateLoaderPath" value="/WEB-INF/template/" />
@@ -19,6 +19,11 @@
19 19
 				<property name="location" value="classpath:freemarker.properties" />
20 20
 			</bean>
21 21
 		</property>
22
+		<property name="freemarkerVariables">
23
+			<bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
24
+				<property name="location" value="classpath:freemarker.variables.properties" />
25
+			</bean>
26
+		</property>
22 27
 	</bean>
23 28
 
24 29
 	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

branch-dianping/dianping-job-web/src/main/resources/applicationcontext-database.xml → xxl-job-simple/src/main/resources/applicationcontext-database.xml Parādīt failu

@@ -15,6 +15,7 @@
15 15
 	<context:annotation-config />
16 16
 	<context:component-scan base-package="com.xxl.service.impl, com.xxl.dao.impl" />
17 17
 
18
+	<!-- c3p0:Main数据源  -->
18 19
 	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  destroy-method="close">  
19 20
 	    <property name="driverClass" value="${c3p0.driverClass}" />  
20 21
 	    <property name="jdbcUrl" value="${c3p0.url}" />  
@@ -34,7 +35,7 @@
34 35
 		<property name="mapperLocations" value="classpath*:com/xxl/core/model/mapper/*.xml"/>
35 36
 	</bean>
36 37
     
37
-    <!-- scope must be "prototype" when junit -->
38
+    <!-- Template在Junit测试的时候,必须使用scope="prototype",原因未知 -->
38 39
     <bean id="sqlSessionTemplate"  class="org.mybatis.spring.SqlSessionTemplate" scope="prototype">  
39 40
           <constructor-arg index="0" ref="sqlSessionFactory" />  
40 41
     </bean> 

branch-dianping/dianping-job-web/src/main/resources/applicationcontext-trigger-db.xml → xxl-job-simple/src/main/resources/applicationcontext-trigger-db.xml Parādīt failu

@@ -9,16 +9,37 @@
9 9
            http://www.springframework.org/schema/util 
10 10
            http://www.springframework.org/schema/util/spring-util.xsd">
11 11
 
12
+	<!-- Job trigger -->
13
+	<bean id="job02Trigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
14
+		<property name="jobDetail" >
15
+			<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
16
+				<property name="jobClass" value="com.xxl.service.job.JobDetailDemo"/>
17
+				<property name="jobDataAsMap">
18
+					<map>
19
+						<!-- <entry key="xxService" value-ref="xxService" /> -->
20
+					</map>
21
+				</property>  
22
+				<property name="durability" value="true" />
23
+			</bean>
24
+		</property>
25
+		<property name="cronExpression" value="0/3 * * * * ? *" />
26
+	</bean>
27
+
28
+	<!-- Job信息会被上报并持久化到mysql中,多个集群节点中竞争Job锁,只会有一台执行 -->
12 29
 	<bean id="quartzScheduler" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
13 30
 		<property name="dataSource" ref="dataSource" />
14 31
         <property name="autoStartup" value="true" />
15 32
 		<property name="applicationContextSchedulerContextKey"  value="applicationContextKey" /> 
16 33
         <property name="configLocation" value="classpath:quartz.properties"/>
34
+		<property name="triggers">
35
+			<list>
36
+				<!-- <ref bean="job02Trigger" /> -->
37
+			</list>
38
+		</property>
17 39
 	</bean>
18 40
 	
19
-	<!-- 协同-调度器 -->
20
-	<bean id="dynamicSchedulerUtil" class="com.dianping.job.core.util.DynamicSchedulerUtil">
21
-		<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
41
+	<!-- 调度器 -->
42
+	<bean id="dynamicSchedulerUtil" class="com.xxl.quartz.DynamicSchedulerUtil">
22 43
         <property name="scheduler" ref="quartzScheduler"/>
23 44
     </bean>
24 45
 

branch-dianping/dianping-job-web/src/main/resources/applicationcontext-trigger-local.xml → xxl-job-simple/src/main/resources/applicationcontext-trigger-local.xml Parādīt failu

@@ -20,11 +20,11 @@
20 20
 		<property name="cronExpression" value="0/10 * * * * ? *" />
21 21
 	</bean>
22 22
 	
23
-	<!-- 进程-调度器 -->
24
-	<bean name="jvmQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
23
+	<!-- Job被加载到内存中,每个集群节点相互独立,都会执行该任务 -->
24
+	<bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
25 25
 		<property name="triggers">
26 26
 			<list>
27
-				<!-- <ref bean="beatTrigger" /> -->
27
+				<ref bean="beatTrigger" />
28 28
 			</list>
29 29
 		</property>
30 30
 	</bean>

branch-dianping/dianping-job-web/src/main/resources/applicationcontext-tx.xml → xxl-job-simple/src/main/resources/applicationcontext-tx.xml Parādīt failu

@@ -12,12 +12,15 @@
12 12
 		http://www.springframework.org/schema/tx 
13 13
 		http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
14 14
 
15
+    <!-- 事务管理器(声明式事务) -->
15 16
 	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
16 17
 		<property name="dataSource" ref="dataSource" />
17 18
 	</bean>
18 19
       
20
+	<!-- 启动事务注解(方式1:注解方式) -->
19 21
 	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
20 22
 	
23
+	<!-- 事务通知(方式2:XML事务管理) -->
21 24
 	<tx:advice id="txAdvice" transaction-manager="transactionManager">
22 25
 		<tx:attributes>
23 26
 			<tx:method name="detail*" propagation="SUPPORTS" />
@@ -30,8 +33,11 @@
30 33
 		</tx:attributes>
31 34
 	</tx:advice>
32 35
 
36
+	<!-- AOP配置 -->
33 37
 	<aop:config>
38
+		<!-- 定义一个切入点 -->
34 39
 		<aop:pointcut id="txoperation" expression="execution(* com.xxl.service.imp.*.*(..))" />
40
+		<!-- 切入点事务通知 -->
35 41
 		<aop:advisor pointcut-ref="txoperation" advice-ref="txAdvice" />
36 42
 	</aop:config>
37 43
 	

branch-dianping/dianping-job-web/src/main/resources/freemarker.properties → xxl-job-simple/src/main/resources/freemarker.properties Parādīt failu


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels