xueli.xue 9 vuotta sitten
vanhempi
commit
e58f77ddee

+ 1 - 0
.gitignore Näytä tiedosto

1
 /.settings/
1
 /.settings/
2
 /.project
2
 /.project
3
 /xxl-job.iml
3
 /xxl-job.iml
4
+/.idea

+ 2 - 2
README.md Näytä tiedosto

21
 	11、支持远程任务执行终止;
21
 	11、支持远程任务执行终止;
22
 	12、支持登录验证;
22
 	12、支持登录验证;
23
 	
23
 	
24
-# 新版本 V1.1.x,特性【于V1.1.x版本,XXL-JOB正式应用于我司,内部定制别名为 “Ferrari”】
24
+# 新版本 V1.1.x,特性【于V1.1.x版本,XXL-JOB正式应用于我司,内部定制别名为 “Ferrari”,新接入应用推荐使用最新版本V1.3.x
25
 	1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
25
 	1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
26
 	2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效;
26
 	2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效;
27
 	3、服务HA:任务信息持久化到mysql中,Job服务天然支持集群,保证服务HA;
27
 	3、服务HA:任务信息持久化到mysql中,Job服务天然支持集群,保证服务HA;
76
 	
76
 	
77
 # Tips
77
 # Tips
78
 	更多接入公司,欢迎在https://github.com/xuxueli/xxl-job/issues/1 登记。
78
 	更多接入公司,欢迎在https://github.com/xuxueli/xxl-job/issues/1 登记。
79
-	我司大众点评已接入XXL-JOB,内部别名《Ferrari》(Ferrari基于XXL-JOB的V1.1版本定制而成)。自2016-01-21接入至2016-05-20未知,内部XXL-JOB系统已调度40000余次,表现优异。新接入应用推荐使用最新版本V1.3,因为经过两个大版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的提升,核心功能更加稳定高效。
79
+	我司大众点评已接入XXL-JOB,内部别名《Ferrari》(于V1.1.x版本,XXL-JOB正式应用于我司,内部定制别名为 “Ferrari”,新接入应用推荐使用最新版本V1.3.x)。自2016-01-21接入至2016-05-20未知,内部XXL-JOB系统已调度40000余次,表现优异。新接入应用推荐使用最新版本V1.3,因为经过两个大版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的提升,核心功能更加稳定高效。
80
 	
80
 	
81
 	
81
 	
82
 ![image](http://images2015.cnblogs.com/blog/554415/201605/554415-20160513183306234-1939652116.png)
82
 ![image](http://images2015.cnblogs.com/blog/554415/201605/554415-20160513183306234-1939652116.png)

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java Näytä tiedosto

35
 		List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.selectList(jobGroup, jobName);
35
 		List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.selectList(jobGroup, jobName);
36
 		model.addAttribute("jobInfo", jobInfo);
36
 		model.addAttribute("jobInfo", jobInfo);
37
 		model.addAttribute("jobLogGlues", jobLogGlues);
37
 		model.addAttribute("jobLogGlues", jobLogGlues);
38
-		return "jobcode/index";
38
+		return "jobcode/jobcode.index";
39
 	}
39
 	}
40
 	
40
 	
41
 	@RequestMapping("/save")
41
 	@RequestMapping("/save")

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java Näytä tiedosto

44
 	@RequestMapping
44
 	@RequestMapping
45
 	public String index(Model model) {
45
 	public String index(Model model) {
46
 		model.addAttribute("JobGroupList", JobGroupEnum.values());			// 任务组列表
46
 		model.addAttribute("JobGroupList", JobGroupEnum.values());			// 任务组列表
47
-		return "jobinfo/index";
47
+		return "jobinfo/jobinfo.index";
48
 	}
48
 	}
49
 	
49
 	
50
 	@RequestMapping("/pageList")
50
 	@RequestMapping("/pageList")

+ 4 - 4
xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl Näytä tiedosto

27
 	<!-- scrollup -->
27
 	<!-- scrollup -->
28
 	<link rel="stylesheet" href="${request.contextPath}/static/plugins/scrollup/image.css">
28
 	<link rel="stylesheet" href="${request.contextPath}/static/plugins/scrollup/image.css">
29
 	<!-- pace -->
29
 	<!-- pace -->
30
-	<link rel="stylesheet" href="${request.contextPath}/static/plugins/pace/pace-theme-minimal.css">
30
+	<link rel="stylesheet" href="${request.contextPath}/static/plugins/pace/themes/pace-theme-flash.css">
31
 </#macro>
31
 </#macro>
32
 
32
 
33
 <#macro commonScript>
33
 <#macro commonScript>
170
 		<div class="pull-right hidden-xs">
170
 		<div class="pull-right hidden-xs">
171
 			<b>Version</b> 1.0
171
 			<b>Version</b> 1.0
172
 		</div>
172
 		</div>
173
-		<strong>Copyright &copy; 2015-2015 &nbsp;
173
+		<strong>Copyright &copy; 2015-${.now?string('yyyy')} &nbsp;
174
 			<a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a>&nbsp;
174
 			<a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a>&nbsp;
175
-			<a href="http://www.cnblogs.com/xuxueli/p/5021979.html" target="_blank" >cnblog</a>.
176
-		</strong> All rights reserved.
175
+			<a href="http://www.cnblogs.com/xuxueli/p/5021979.html" target="_blank" >cnblog</a>
176
+		</strong><!-- All rights reserved. -->
177
 	</footer>
177
 	</footer>
178
 </#macro>
178
 </#macro>
179
 
179
 

+ 9 - 4
xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl Näytä tiedosto

31
 				<h4>简介:XXL_JOB</h4>
31
 				<h4>简介:XXL_JOB</h4>
32
 				<br>
32
 				<br>
33
 				<p>
33
 				<p>
34
-					<a target="_blank" href="https://github.com/xuxueli/xxl-job">github地址</a><br><br>
34
+					<a target="_blank" href="https://github.com/xuxueli/xxl-job">github地址</a>&nbsp;&nbsp;&nbsp;&nbsp;
35
+					<iframe src="https://ghbtns.com/github-btn.html?user=xuxueli&repo=xxl-job&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px" style="margin-bottom:-5px;"></iframe> 
36
+					<br><br>
35
 					<a target="_blank" href="http://git.oschina.net/xuxueli0323/xxl-job">git.osc地址</a><br><br>
37
 					<a target="_blank" href="http://git.oschina.net/xuxueli0323/xxl-job">git.osc地址</a><br><br>
36
-					<a target="_blank" href="http://www.cnblogs.com/xuxueli/p/5021979.html">博客地址(内附使用教程)</a><br><br>
37
-					<a >技术交流群(仅作技术交流):367260654</a>&nbsp;&nbsp;
38
-					<a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=4686e3fe01118445c75673a66b4cc6b2c7ce0641528205b6f403c179062b0a52"><img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="《xxl-javaer》" title="《xxl-javaer》"></a>
38
+					<a target="_blank" href="http://www.cnblogs.com/xuxueli/p/5021979.html">博客地址(内附使用教程)</a>
39
+					<br><br>
40
+					<a >技术交流群(仅作技术交流):367260654</a>&nbsp;&nbsp;&nbsp;&nbsp;
41
+					<a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=4686e3fe01118445c75673a66b4cc6b2c7ce0641528205b6f403c179062b0a52">
42
+						<img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="《xxl-javaer》" title="《xxl-javaer》">
43
+					</a>
39
 				</p>
44
 				</p>
40
 				<p></p>
45
 				<p></p>
41
             </div>
46
             </div>

xxl-job-admin/src/main/webapp/WEB-INF/template/jobcode/index.ftl → xxl-job-admin/src/main/webapp/WEB-INF/template/jobcode/jobcode.index.ftl Näytä tiedosto


xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/index.ftl → xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl Näytä tiedosto


+ 0 - 18
xxl-job-admin/src/main/webapp/static/plugins/pace/pace-theme-minimal.css Näytä tiedosto

1
-/* This is a compiled file, you should be editing the file in the templates directory */
2
-.pace .pace-progress {
3
-  background: #22df80;
4
-  position: fixed;
5
-  z-index: 2000;
6
-  top: 0;
7
-  left: 0;
8
-  height: 2px;
9
-
10
-  -webkit-transition: width 1s;
11
-  -moz-transition: width 1s;
12
-  -o-transition: width 1s;
13
-  transition: width 1s;
14
-}
15
-
16
-.pace-inactive {
17
-  display: none;
18
-}

+ 231 - 0
xxl-job-admin/src/main/webapp/static/plugins/pace/themes/pace-theme-bounce.css Näytä tiedosto

1
+/* This is a compiled file, you should be editing the file in the templates directory */
2
+.pace {
3
+  width: 140px;
4
+  height: 300px;
5
+  position: fixed;
6
+  top: -90px;
7
+  right: -20px;
8
+  z-index: 2000;
9
+  -webkit-transform: scale(0);
10
+  -moz-transform: scale(0);
11
+  -ms-transform: scale(0);
12
+  -o-transform: scale(0);
13
+  transform: scale(0);
14
+  opacity: 0;
15
+  -webkit-transition: all 2s linear 0s;
16
+  -moz-transition: all 2s linear 0s;
17
+  transition: all 2s linear 0s;
18
+}
19
+
20
+.pace.pace-active {
21
+  -webkit-transform: scale(.25);
22
+  -moz-transform: scale(.25);
23
+  -ms-transform: scale(.25);
24
+  -o-transform: scale(.25);
25
+  transform: scale(.25);
26
+  opacity: 1;
27
+}
28
+
29
+.pace .pace-activity {
30
+  width: 140px;
31
+  height: 140px;
32
+  border-radius: 70px;
33
+  background: #29d;
34
+  position: absolute;
35
+  top: 0;
36
+  z-index: 1911;
37
+  -webkit-animation: pace-bounce 1s infinite;
38
+  -moz-animation: pace-bounce 1s infinite;
39
+  -o-animation: pace-bounce 1s infinite;
40
+  -ms-animation: pace-bounce 1s infinite;
41
+  animation: pace-bounce 1s infinite;
42
+}
43
+
44
+.pace .pace-progress {
45
+  position: absolute;
46
+  display: block;
47
+  left: 50%;
48
+  bottom: 0;
49
+  z-index: 1910;
50
+  margin-left: -30px;
51
+  width: 60px;
52
+  height: 75px;
53
+  background: rgba(20, 20, 20, .1);
54
+  box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);
55
+  border-radius: 30px / 40px;
56
+  -webkit-transform: scaleY(.3);
57
+  -moz-transform: scaleY(.3);
58
+  -ms-transform: scaleY(.3);
59
+  -o-transform: scaleY(.3);
60
+  transform: scaleY(.3);
61
+  -webkit-animation: pace-compress .5s infinite alternate;
62
+  -moz-animation: pace-compress .5s infinite alternate;
63
+  -o-animation: pace-compress .5s infinite alternate;
64
+  -ms-animation: pace-compress .5s infinite alternate;
65
+  animation: pace-compress .5s infinite alternate;
66
+}
67
+
68
+@-webkit-keyframes pace-bounce {
69
+  0% {
70
+    top: 0;
71
+    -webkit-animation-timing-function: ease-in;
72
+  }
73
+  40% {}
74
+  50% {
75
+    top: 140px;
76
+    height: 140px;
77
+    -webkit-animation-timing-function: ease-out;
78
+  }
79
+  55% {
80
+    top: 160px;
81
+    height: 120px;
82
+    border-radius: 70px / 60px;
83
+    -webkit-animation-timing-function: ease-in;
84
+  }
85
+  65% {
86
+    top: 120px;
87
+    height: 140px;
88
+    border-radius: 70px;
89
+    -webkit-animation-timing-function: ease-out;
90
+  }
91
+  95% {
92
+    top: 0;
93
+    -webkit-animation-timing-function: ease-in;
94
+  }
95
+  100% {
96
+    top: 0;
97
+    -webkit-animation-timing-function: ease-in;
98
+  }
99
+}
100
+
101
+@-moz-keyframes pace-bounce {
102
+  0% {
103
+    top: 0;
104
+    -moz-animation-timing-function: ease-in;
105
+  }
106
+  40% {}
107
+  50% {
108
+    top: 140px;
109
+    height: 140px;
110
+    -moz-animation-timing-function: ease-out;
111
+  }
112
+  55% {
113
+    top: 160px;
114
+    height: 120px;
115
+    border-radius: 70px / 60px;
116
+    -moz-animation-timing-function: ease-in;
117
+  }
118
+  65% {
119
+    top: 120px;
120
+    height: 140px;
121
+    border-radius: 70px;
122
+    -moz-animation-timing-function: ease-out;}
123
+  95% {
124
+    top: 0;
125
+    -moz-animation-timing-function: ease-in;
126
+  }
127
+  100% {top: 0;
128
+    -moz-animation-timing-function: ease-in;
129
+  }
130
+}
131
+
132
+@keyframes pace-bounce {
133
+  0% {
134
+    top: 0;
135
+    animation-timing-function: ease-in;
136
+  }
137
+  50% {
138
+    top: 140px;
139
+    height: 140px;
140
+    animation-timing-function: ease-out;
141
+  }
142
+  55% {
143
+    top: 160px;
144
+    height: 120px;
145
+    border-radius: 70px / 60px;
146
+    animation-timing-function: ease-in;
147
+  }
148
+  65% {
149
+    top: 120px;
150
+    height: 140px;
151
+    border-radius: 70px;
152
+    animation-timing-function: ease-out;
153
+  }
154
+  95% {
155
+    top: 0;
156
+    animation-timing-function: ease-in;
157
+  }
158
+  100% {
159
+    top: 0;
160
+    animation-timing-function: ease-in;
161
+  }
162
+}
163
+
164
+@-webkit-keyframes pace-compress {
165
+  0% {
166
+    bottom: 0;
167
+    margin-left: -30px;
168
+    width: 60px;
169
+    height: 75px;
170
+    background: rgba(20, 20, 20, .1);
171
+    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);
172
+    border-radius: 30px / 40px;
173
+    -webkit-animation-timing-function: ease-in;
174
+  }
175
+  100% {
176
+    bottom: 30px;
177
+    margin-left: -10px;
178
+    width: 20px;
179
+    height: 5px;
180
+    background: rgba(20, 20, 20, .3);
181
+    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);
182
+    border-radius: 20px / 20px;
183
+    -webkit-animation-timing-function: ease-out;
184
+  }
185
+}
186
+
187
+@-moz-keyframes pace-compress {
188
+  0% {
189
+    bottom: 0;
190
+    margin-left: -30px;
191
+    width: 60px;
192
+    height: 75px;
193
+    background: rgba(20, 20, 20, .1);
194
+    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);
195
+    border-radius: 30px / 40px;
196
+    -moz-animation-timing-function: ease-in;
197
+  }
198
+  100% {
199
+    bottom: 30px;
200
+    margin-left: -10px;
201
+    width: 20px;
202
+    height: 5px;
203
+    background: rgba(20, 20, 20, .3);
204
+    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);
205
+    border-radius: 20px / 20px;
206
+    -moz-animation-timing-function: ease-out;
207
+  }
208
+}
209
+
210
+@keyframes pace-compress {
211
+  0% {
212
+    bottom: 0;
213
+    margin-left: -30px;
214
+    width: 60px;
215
+    height: 75px;
216
+    background: rgba(20, 20, 20, .1);
217
+    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .1);
218
+    border-radius: 30px / 40px;
219
+    animation-timing-function: ease-in;
220
+  }
221
+  100% {
222
+    bottom: 30px;
223
+    margin-left: -10px;
224
+    width: 20px;
225
+    height: 5px;
226
+    background: rgba(20, 20, 20, .3);
227
+    box-shadow: 0 0 20px 35px rgba(20, 20, 20, .3);
228
+    border-radius: 20px / 20px;
229
+    animation-timing-function: ease-out;
230
+  }
231
+}

+ 81 - 0
xxl-job-admin/src/main/webapp/static/plugins/pace/themes/pace-theme-flash.css Näytä tiedosto

1
+/* This is a compiled file, you should be editing the file in the templates directory */
2
+.pace {
3
+  -webkit-pointer-events: none;
4
+  pointer-events: none;
5
+  -webkit-user-select: none;
6
+  -moz-user-select: none;
7
+  user-select: none;
8
+}
9
+
10
+.pace-inactive {
11
+  display: none;
12
+}
13
+
14
+.pace .pace-progress {
15
+  background: #29d;
16
+  position: fixed;
17
+  z-index: 2000;
18
+  top: 0;
19
+  left: 0;
20
+  height: 2px;
21
+
22
+  -webkit-transition: width 1s;
23
+  -moz-transition: width 1s;
24
+  -o-transition: width 1s;
25
+  transition: width 1s;
26
+}
27
+
28
+.pace .pace-progress-inner {
29
+  display: block;
30
+  position: absolute;
31
+  right: 0px;
32
+  width: 100px;
33
+  height: 100%;
34
+  box-shadow: 0 0 10px #29d, 0 0 5px #29d;
35
+  opacity: 1.0;
36
+  -webkit-transform: rotate(3deg) translate(0px, -4px);
37
+  -moz-transform: rotate(3deg) translate(0px, -4px);
38
+  -ms-transform: rotate(3deg) translate(0px, -4px);
39
+  -o-transform: rotate(3deg) translate(0px, -4px);
40
+  transform: rotate(3deg) translate(0px, -4px);
41
+}
42
+
43
+.pace .pace-activity {
44
+  display: block;
45
+  position: fixed;
46
+  z-index: 2000;
47
+  top: 15px;
48
+  right: 15px;
49
+  width: 14px;
50
+  height: 14px;
51
+  border: solid 2px transparent;
52
+  border-top-color: #29d;
53
+  border-left-color: #29d;
54
+  border-radius: 10px;
55
+  -webkit-animation: pace-spinner 400ms linear infinite;
56
+  -moz-animation: pace-spinner 400ms linear infinite;
57
+  -ms-animation: pace-spinner 400ms linear infinite;
58
+  -o-animation: pace-spinner 400ms linear infinite;
59
+  animation: pace-spinner 400ms linear infinite;
60
+}
61
+
62
+@-webkit-keyframes pace-spinner {
63
+  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
64
+  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
65
+}
66
+@-moz-keyframes pace-spinner {
67
+  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }
68
+  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }
69
+}
70
+@-o-keyframes pace-spinner {
71
+  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }
72
+  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }
73
+}
74
+@-ms-keyframes pace-spinner {
75
+  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }
76
+  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }
77
+}
78
+@keyframes pace-spinner {
79
+  0% { transform: rotate(0deg); transform: rotate(0deg); }
80
+  100% { transform: rotate(360deg); transform: rotate(360deg); }
81
+}