diff --git a/escheduler-api/pom.xml b/escheduler-api/pom.xml
index ec94e30b273b18dd56d8cb41e65a4c864eb84067..e0e8c54a3b176d09d9b654b4bc88db36c85826d5 100644
--- a/escheduler-api/pom.xml
+++ b/escheduler-api/pom.xml
@@ -1,4 +1,5 @@
-
+
4.0.0
cn.analysys
@@ -10,13 +11,10 @@
+
cn.analysys
- escheduler-dao
-
-
- cn.analysys
- escheduler-common
+ escheduler-server
io.netty
@@ -37,6 +35,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -142,6 +167,17 @@
quartz-jobs
+
+ io.springfox
+ springfox-swagger2
+ 2.8.0
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.8.0
+
cn.analysys
escheduler-rpc
@@ -187,4 +223,4 @@
-
+
\ No newline at end of file
diff --git a/escheduler-api/src/main/java/cn/escheduler/api/ApiApplicationServer.java b/escheduler-api/src/main/java/cn/escheduler/api/ApiApplicationServer.java
index 1c66e2d4ed22eccc3086a0eef05700e0a547622b..5ddc72ffbc11db696817429db4f61252e5bb78d3 100644
--- a/escheduler-api/src/main/java/cn/escheduler/api/ApiApplicationServer.java
+++ b/escheduler-api/src/main/java/cn/escheduler/api/ApiApplicationServer.java
@@ -20,6 +20,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.ComponentScan;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@ServletComponentScan
diff --git a/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java b/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java
index 148efc1894a75a86c8a627a7b7bc0893ff6c4e86..00272ea5a735da24c6a813228587d7bb19439348 100644
--- a/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java
+++ b/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java
@@ -33,8 +33,16 @@ public class AppConfiguration implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN);
+ registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html");
}
+//
+// @Override
+// public void addResourceHandlers(ResourceHandlerRegistry registry) {
+// registry.addResourceHandler("swagger-ui.html")
+// .addResourceLocations("classpath:/META-INF/resources/");
+// registry.addResourceHandler("/webjars/**")
+// .addResourceLocations("classpath:/META-INF/resources/webjars/");
+// }
@Bean
public LoginHandlerInterceptor loginInterceptor() {
diff --git a/escheduler-api/src/main/java/cn/escheduler/api/configuration/Swagger2.java b/escheduler-api/src/main/java/cn/escheduler/api/configuration/Swagger2.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e5b9b8fcb3b545658da1bc8a133df99aedbb2b8
--- /dev/null
+++ b/escheduler-api/src/main/java/cn/escheduler/api/configuration/Swagger2.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package cn.escheduler.api.configuration;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ *
+ * swager2 config class
+ *
+ */
+@Configuration
+@EnableSwagger2
+public class Swagger2 implements WebMvcConfigurer {
+
+ @Bean
+ public Docket createRestApi() {
+ return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+ .apis(RequestHandlerSelectors.basePackage("cn.escheduler.api.controller")).paths(PathSelectors.any())
+ .build();
+ }
+
+ private ApiInfo apiInfo() {
+ return new ApiInfoBuilder().title("api docs").description("easy scheduler api docs")
+ .termsOfServiceUrl("https://www.analysys.com").version("1.0.0").build();
+ }
+
+
+}
diff --git a/escheduler-api/src/main/java/cn/escheduler/api/controller/LoginController.java b/escheduler-api/src/main/java/cn/escheduler/api/controller/LoginController.java
index 60530c53763d895c26d8ea33b263eb2977a90009..061a2d404d81fab11b51be6b3302dbcd830f0894 100644
--- a/escheduler-api/src/main/java/cn/escheduler/api/controller/LoginController.java
+++ b/escheduler-api/src/main/java/cn/escheduler/api/controller/LoginController.java
@@ -23,6 +23,9 @@ import cn.escheduler.api.service.UsersService;
import cn.escheduler.api.utils.Constants;
import cn.escheduler.api.utils.Result;
import cn.escheduler.dao.model.User;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -60,6 +63,11 @@ public class LoginController extends BaseController {
* @param response
* @return
*/
+ @ApiOperation(value="更新用户详细信息", notes="根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "userName", value = "用户名", required = true, dataType = "String"),
+ @ApiImplicitParam(name = "userPassword", value = "密码", required = true, dataType = "String")
+ })
@RequestMapping(value = "/login")
public Result login(@RequestParam(value = "userName") String userName,
@RequestParam(value = "userPassword") String userPassword,
diff --git a/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java b/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java
index 232b9d7b159573b9fffee2f541759a880961b374..ad6cfc7f50829f046bfdd41448ba014f4948b5be 100644
--- a/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java
+++ b/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java
@@ -19,8 +19,8 @@ package cn.escheduler.api.service;
import cn.escheduler.api.dto.ScheduleParam;
import cn.escheduler.api.enums.Status;
-import cn.escheduler.api.quartz.ProcessScheduleJob;
-import cn.escheduler.api.quartz.QuartzExecutors;
+import cn.escheduler.server.quartz.ProcessScheduleJob;
+import cn.escheduler.server.quartz.QuartzExecutors;
import cn.escheduler.api.utils.Constants;
import cn.escheduler.api.utils.PageInfo;
import cn.escheduler.common.enums.FailureStrategy;
diff --git a/escheduler-common/src/main/java/cn/escheduler/common/queue/ITaskQueue.java b/escheduler-common/src/main/java/cn/escheduler/common/queue/ITaskQueue.java
index 42629324a2b20b01a9e794194e0a24132335df88..106d6ff915fb030d5e5e5d517cb4783fb9e08899 100644
--- a/escheduler-common/src/main/java/cn/escheduler/common/queue/ITaskQueue.java
+++ b/escheduler-common/src/main/java/cn/escheduler/common/queue/ITaskQueue.java
@@ -54,7 +54,7 @@ public interface ITaskQueue {
* an element pops out of the queue
*
* @param key queue name
- * @param remove where remove the element
+ * @param remove whether remove the element
* @return
*/
String poll(String key, boolean remove);
diff --git a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/ProcessInstanceMapperProvider.java b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/ProcessInstanceMapperProvider.java
index cd9daa3781fb2f611d14507e304a2789821f336e..7e078b995bef60802f38fb3bc5a37dc4b4f4f8b5 100644
--- a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/ProcessInstanceMapperProvider.java
+++ b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/ProcessInstanceMapperProvider.java
@@ -220,7 +220,7 @@ public class ProcessInstanceMapperProvider {
public String queryDetailById(Map parameter) {
return new SQL() {
{
- SELECT("inst.*,q.queue_name as queue,t.tenant_code as tenantCode,UNIX_TIMESTAMP(inst.end_time)-UNIX_TIMESTAMP(inst.start_time) as duration");
+ SELECT("inst.*,q.queue_name as queue,t.tenant_code,UNIX_TIMESTAMP(inst.end_time)-UNIX_TIMESTAMP(inst.start_time) as duration");
FROM(TABLE_NAME + " inst, t_escheduler_user u,t_escheduler_tenant t,t_escheduler_queue q");
diff --git a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/UserMapperProvider.java b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/UserMapperProvider.java
index d060f46dd23755dca515fc6124c6fdd036c8e371..cc404c5c5cdd01e201a95d564ab368ab87224075 100644
--- a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/UserMapperProvider.java
+++ b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/UserMapperProvider.java
@@ -208,7 +208,7 @@ public class UserMapperProvider {
public String queryDetailsById(Map parameter) {
return new SQL() {
{
- SELECT("u.*,q.queue_name as queueName,t.tenant_name as tenantName");
+ SELECT("u.*,q.queue_name,t.tenant_name");
FROM(TABLE_NAME + " u,t_escheduler_tenant t,t_escheduler_queue q");
diff --git a/escheduler-dao/src/test/java/cn/escheduler/dao/mapper/UserMapperTest.java b/escheduler-dao/src/test/java/cn/escheduler/dao/mapper/UserMapperTest.java
index adede0c3294e28a1b943c204ac66f91d78dfaec3..d85a25f175cd73e17dad194ff2b3fb4ac5194122 100644
--- a/escheduler-dao/src/test/java/cn/escheduler/dao/mapper/UserMapperTest.java
+++ b/escheduler-dao/src/test/java/cn/escheduler/dao/mapper/UserMapperTest.java
@@ -72,4 +72,10 @@ public class UserMapperTest {
Assert.assertEquals(user.getUserName(), "qiaozhanwei");
}
+ @Test
+ public void test(){
+ User user = userMapper.queryDetailsById(19);
+ System.out.println(user);
+ }
+
}
diff --git a/escheduler-server/pom.xml b/escheduler-server/pom.xml
index 3047296e099b996c289b02d768f53ab1bc963964..53d6b6f8c5b192984f5b9af4b4b522fb7166855d 100644
--- a/escheduler-server/pom.xml
+++ b/escheduler-server/pom.xml
@@ -46,10 +46,7 @@
-
- cn.analysys
- escheduler-api
-
+
cn.analysys
escheduler-rpc
diff --git a/escheduler-server/src/main/java/cn/escheduler/server/master/MasterServer.java b/escheduler-server/src/main/java/cn/escheduler/server/master/MasterServer.java
index f877104cc11de2141e1cb83e3d555f0dfdb54804..e13782481402fec49e9efd960617e1e0cb9d4e4a 100644
--- a/escheduler-server/src/main/java/cn/escheduler/server/master/MasterServer.java
+++ b/escheduler-server/src/main/java/cn/escheduler/server/master/MasterServer.java
@@ -16,8 +16,8 @@
*/
package cn.escheduler.server.master;
-import cn.escheduler.api.quartz.ProcessScheduleJob;
-import cn.escheduler.api.quartz.QuartzExecutors;
+import cn.escheduler.server.quartz.ProcessScheduleJob;
+import cn.escheduler.server.quartz.QuartzExecutors;
import cn.escheduler.common.Constants;
import cn.escheduler.common.IStoppable;
import cn.escheduler.common.thread.Stopper;
diff --git a/escheduler-api/src/main/java/cn/escheduler/api/quartz/ProcessScheduleJob.java b/escheduler-server/src/main/java/cn/escheduler/server/quartz/ProcessScheduleJob.java
similarity index 96%
rename from escheduler-api/src/main/java/cn/escheduler/api/quartz/ProcessScheduleJob.java
rename to escheduler-server/src/main/java/cn/escheduler/server/quartz/ProcessScheduleJob.java
index 96e283d7d5d8b6e9c41a83de68464a3b1789ffca..3e546bea7c6a1ef1d402c366d2a315f4081a0044 100644
--- a/escheduler-api/src/main/java/cn/escheduler/api/quartz/ProcessScheduleJob.java
+++ b/escheduler-server/src/main/java/cn/escheduler/server/quartz/ProcessScheduleJob.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package cn.escheduler.api.quartz;
+package cn.escheduler.server.quartz;
import cn.escheduler.common.Constants;
@@ -31,8 +31,8 @@ import org.springframework.util.Assert;
import java.util.Date;
-import static cn.escheduler.api.quartz.QuartzExecutors.buildJobGroupName;
-import static cn.escheduler.api.quartz.QuartzExecutors.buildJobName;
+import static cn.escheduler.server.quartz.QuartzExecutors.buildJobGroupName;
+import static cn.escheduler.server.quartz.QuartzExecutors.buildJobName;
/**
* process schedule job
diff --git a/escheduler-api/src/main/java/cn/escheduler/api/quartz/QuartzExecutors.java b/escheduler-server/src/main/java/cn/escheduler/server/quartz/QuartzExecutors.java
similarity index 99%
rename from escheduler-api/src/main/java/cn/escheduler/api/quartz/QuartzExecutors.java
rename to escheduler-server/src/main/java/cn/escheduler/server/quartz/QuartzExecutors.java
index 92e351d5cdb9c21918c3209cd3ef3eefc4cf2143..9a72fb95cb32f36608e37313d123dd1f9d102151 100644
--- a/escheduler-api/src/main/java/cn/escheduler/api/quartz/QuartzExecutors.java
+++ b/escheduler-server/src/main/java/cn/escheduler/server/quartz/QuartzExecutors.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package cn.escheduler.api.quartz;
+package cn.escheduler.server.quartz;
import cn.escheduler.common.Constants;
import cn.escheduler.common.utils.JSONUtils;
diff --git a/escheduler-server/src/main/java/cn/escheduler/server/worker/runner/FetchTaskThread.java b/escheduler-server/src/main/java/cn/escheduler/server/worker/runner/FetchTaskThread.java
index f163364b0680f4a3a4046c8fbe4e40496e200323..6ad3b71f0496559d6d0f592acfdff3b0bc61b3ce 100644
--- a/escheduler-server/src/main/java/cn/escheduler/server/worker/runner/FetchTaskThread.java
+++ b/escheduler-server/src/main/java/cn/escheduler/server/worker/runner/FetchTaskThread.java
@@ -134,7 +134,7 @@ public class FetchTaskThread implements Runnable{
public void run() {
while (Stopper.isRunning()){
-
+ long start = System.currentTimeMillis();
InterProcessMutex mutex = null;
try {
if(OSUtils.checkResource(this.conf, false)) {
@@ -221,7 +221,10 @@ public class FetchTaskThread implements Runnable{
logger.info("task : {} ready to submit to task scheduler thread",taskId);
// submit task
workerExecService.submit(new TaskScheduleThread(taskInstance, processDao));
+
+ logger.info("{} 耗时: {} ms",taskQueueStr,System.currentTimeMillis() - start );
}
+
}
}