jobDataMap);
+
+}
diff --git a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/SchException.java b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/SchException.java
similarity index 90%
rename from udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/SchException.java
rename to udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/SchException.java
index f93fc24..b64ce07 100644
--- a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/SchException.java
+++ b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/SchException.java
@@ -4,7 +4,7 @@
* Created by wangkang
* Copyright (C) 2016 egridcloud.com, All rights reserved.
*/
-package com.egridcloud.udf.scheduler;
+package com.egridcloud.udf.scheduler.client;
/**
*
diff --git a/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobParam.java b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobParam.java
index e3bfbdd..9ef9cfa 100644
--- a/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobParam.java
+++ b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobParam.java
@@ -7,6 +7,7 @@
package com.egridcloud.udf.scheduler.client.domain;
import java.io.Serializable;
+import java.util.Map;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -37,6 +38,30 @@ public class GeneralJobParam implements Serializable {
@ApiModelProperty(value = "bean名称", required = true, dataType = "string")
private String beanName;
+ /**
+ * 描述 : 作业参数
+ */
+ @ApiModelProperty(value = "作业参数", required = true, dataType = "object")
+ private Map jobDataMap; //NOSONAR
+
+ /**
+ * 描述 : 获取jobDataMap
+ *
+ * @return the jobDataMap
+ */
+ public Map getJobDataMap() {
+ return jobDataMap;
+ }
+
+ /**
+ * 描述 : 设置jobDataMap
+ *
+ * @param jobDataMap the jobDataMap to set
+ */
+ public void setJobDataMap(Map jobDataMap) {
+ this.jobDataMap = jobDataMap;
+ }
+
/**
* 描述 : 获取fireInstanceId
*
diff --git a/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobResult.java b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobResult.java
index 732a092..4fb64cf 100644
--- a/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobResult.java
+++ b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/domain/GeneralJobResult.java
@@ -7,6 +7,7 @@
package com.egridcloud.udf.scheduler.client.domain;
import java.io.Serializable;
+import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -29,24 +30,120 @@ public class GeneralJobResult implements Serializable {
* 描述 : 执行ID
*/
@ApiModelProperty(value = "执行ID", required = true, dataType = "string")
- private String id;
+ private String fireInstanceId;
/**
- * 描述 : 获取id
- *
- * @return the id
+ * 描述 : 参数
*/
- public String getId() {
- return id;
+ @ApiModelProperty(value = "参数", required = true, dataType = "object")
+ private GeneralJobParam param;
+
+ /**
+ * 描述 : 客户端初始化时间
+ */
+ @ApiModelProperty(value = "客户端初始化时间", required = true, dataType = "long")
+ private Date clientInitTime;
+
+ /**
+ * 描述 : 客户端开始时间
+ */
+ @ApiModelProperty(value = "客户端开始时间", required = true, dataType = "long")
+ private Date clientStartExecuteTime;
+
+ /**
+ * 描述 : 客户端结束时间
+ */
+ @ApiModelProperty(value = "客户端结束时间", required = true, dataType = "long")
+ private Date clientEndExecuteTime;
+
+ /**
+ * 描述 : 获取clientInitTime
+ *
+ * @return the clientInitTime
+ */
+ public Date getClientInitTime() {
+ return clientInitTime;
}
/**
- * 描述 : 设置id
+ * 描述 : 设置clientInitTime
*
- * @param id the id to set
+ * @param clientInitTime the clientInitTime to set
*/
- public void setId(String id) {
- this.id = id;
+ public void setClientInitTime(Date clientInitTime) {
+ this.clientInitTime = clientInitTime;
+ }
+
+ /**
+ * 描述 : 获取clientStartExecuteTime
+ *
+ * @return the clientStartExecuteTime
+ */
+ public Date getClientStartExecuteTime() {
+ return clientStartExecuteTime;
+ }
+
+ /**
+ * 描述 : 设置clientStartExecuteTime
+ *
+ * @param clientStartExecuteTime the clientStartExecuteTime to set
+ */
+ public void setClientStartExecuteTime(Date clientStartExecuteTime) {
+ this.clientStartExecuteTime = clientStartExecuteTime;
+ }
+
+ /**
+ * 描述 : 获取clientEndExecuteTime
+ *
+ * @return the clientEndExecuteTime
+ */
+ public Date getClientEndExecuteTime() {
+ return clientEndExecuteTime;
+ }
+
+ /**
+ * 描述 : 设置clientEndExecuteTime
+ *
+ * @param clientEndExecuteTime the clientEndExecuteTime to set
+ */
+ public void setClientEndExecuteTime(Date clientEndExecuteTime) {
+ this.clientEndExecuteTime = clientEndExecuteTime;
+ }
+
+ /**
+ * 描述 : 获取param
+ *
+ * @return the param
+ */
+ public GeneralJobParam getParam() {
+ return param;
+ }
+
+ /**
+ * 描述 : 设置param
+ *
+ * @param param the param to set
+ */
+ public void setParam(GeneralJobParam param) {
+ this.param = param;
+ }
+
+ /**
+ * 描述 : 获取fireInstanceId
+ *
+ * @return the fireInstanceId
+ */
+ public String getFireInstanceId() {
+ return fireInstanceId;
+ }
+
+ /**
+ * 描述 : 设置fireInstanceId
+ *
+ * @param fireInstanceId the fireInstanceId to set
+ */
+ public void setFireInstanceId(String fireInstanceId) {
+ this.fireInstanceId = fireInstanceId;
}
}
diff --git a/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/web/ISchClientController.java b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/web/ISchClientController.java
new file mode 100644
index 0000000..c72b74d
--- /dev/null
+++ b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/web/ISchClientController.java
@@ -0,0 +1,51 @@
+/**
+ * ISchClientController.java
+ * Created at 2017-05-26
+ * Created by Administrator
+ * Copyright (C) 2016 egridcloud.com, All rights reserved.
+ */
+package com.egridcloud.udf.scheduler.client.web;
+
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.egridcloud.udf.core.RestResponse;
+import com.egridcloud.udf.scheduler.client.domain.GeneralJobParam;
+import com.egridcloud.udf.scheduler.client.domain.GeneralJobResult;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 描述 : ISchClientController
+ *
+ * @author Administrator
+ *
+ */
+@Api(value = "计划任务客户端", consumes = "application/json", produces = "application/json",
+ protocols = "http")
+@RequestMapping(value = "/service/scheduler/client")
+public interface ISchClientController {
+
+ /**
+ * 描述 : 执行计划任务
+ *
+ * @param param param
+ *
+ * @return 执行计划任务
+ */
+ @ApiOperation(value = "接口编号自定义", notes = "执行计划任务")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称",
+ required = true, dataType = "string"),
+ @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true,
+ dataType = "string"),
+ @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号",
+ required = true, dataType = "string") })
+ @RequestMapping(method = RequestMethod.POST)
+ public RestResponse execute(@RequestBody GeneralJobParam param);
+
+}
diff --git a/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/web/SchClientController.java b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/web/SchClientController.java
new file mode 100644
index 0000000..22064c3
--- /dev/null
+++ b/udf-starter-scheduler-client/src/main/java/com/egridcloud/udf/scheduler/client/web/SchClientController.java
@@ -0,0 +1,69 @@
+/**
+ * SchClientController.java
+ * Created at 2017-05-26
+ * Created by Administrator
+ * Copyright (C) 2016 egridcloud.com, All rights reserved.
+ */
+package com.egridcloud.udf.scheduler.client.web;
+
+import java.util.Date;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.egridcloud.udf.core.RestResponse;
+import com.egridcloud.udf.scheduler.client.IExecute;
+import com.egridcloud.udf.scheduler.client.SchException;
+import com.egridcloud.udf.scheduler.client.domain.GeneralJobParam;
+import com.egridcloud.udf.scheduler.client.domain.GeneralJobResult;
+
+/**
+ * 描述 : SchClientController
+ *
+ * @author Administrator
+ *
+ */
+@RestController
+public class SchClientController implements ISchClientController, ApplicationContextAware {
+
+ /**
+ * 描述 : spring上下文
+ */
+ private ApplicationContext applicationContext;
+
+ @Override
+ public RestResponse execute(@RequestBody GeneralJobParam param) {
+ //客户端初始化时间
+ Date clientInitTime = new Date();
+ //定义返回值
+ GeneralJobResult result = new GeneralJobResult();
+ result.setFireInstanceId(param.getFireInstanceId());
+ result.setParam(param);
+ //获得bean
+ IExecute bean = applicationContext.getBean(IExecute.class, param.getBeanName());
+ if (bean == null) {
+ throw new SchException(param.getBeanName() + " not definition");
+ }
+ //客户端开始时间
+ Date clientStartExecuteTime = new Date();
+ //执行
+ bean.execute(param.getJobDataMap());
+ //客户端结束时间
+ Date clientEndExecuteTime = new Date();
+ //设置返回值
+ result.setClientInitTime(clientInitTime);
+ result.setClientStartExecuteTime(clientStartExecuteTime);
+ result.setClientEndExecuteTime(clientEndExecuteTime);
+ //返回
+ return new RestResponse<>(result);
+ }
+
+ @Override
+ public void setApplicationContext(ApplicationContext arg0) throws BeansException {
+ applicationContext = arg0;
+ }
+
+}
diff --git a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/job/GeneralJob.java b/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/job/GeneralJob.java
index 6b7a92c..6db75e7 100644
--- a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/job/GeneralJob.java
+++ b/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/job/GeneralJob.java
@@ -17,7 +17,7 @@ import org.springframework.http.ResponseEntity;
import com.egridcloud.udf.core.RestResponse;
import com.egridcloud.udf.rms.Rms;
import com.egridcloud.udf.scheduler.IGeneralJobResult;
-import com.egridcloud.udf.scheduler.SchException;
+import com.egridcloud.udf.scheduler.client.SchException;
import com.egridcloud.udf.scheduler.client.domain.GeneralJobParam;
import com.egridcloud.udf.scheduler.client.domain.GeneralJobResult;
@@ -50,22 +50,17 @@ public class GeneralJob extends AbstractBaseJob {
GeneralJobParam generalJobParam = new GeneralJobParam();
generalJobParam.setFireInstanceId(jobExecutionContext.getFireInstanceId());
generalJobParam.setBeanName(beanName);
+ generalJobParam.setJobDataMap(jobDataMap.getWrappedMap());
//请求
- try {
- //拿到结果
- ResponseEntity> result = rms.call(serviceCode, generalJobParam,
- null, new ParameterizedTypeReference>() {
- }, null);
- //判断http状态
- if (result.getStatusCode() != HttpStatus.OK) {
- throw new SchException(result.getStatusCode().toString());
- }
- //记录结果
- saveGeneralJobResult(result.getBody().getResult());
- } catch (Exception e) {
- //抛出异常
- throw new JobExecutionException(e);
+ ResponseEntity> result = rms.call(serviceCode, generalJobParam,
+ null, new ParameterizedTypeReference>() {
+ }, null);
+ //判断http状态
+ if (result.getStatusCode() != HttpStatus.OK) {
+ throw new SchException(result.getStatusCode().toString());
}
+ //记录结果
+ saveGeneralJobResult(result.getBody().getResult());
}
/**
diff --git a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/JobService.java b/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/JobService.java
index 1ed0ad4..7346488 100644
--- a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/JobService.java
+++ b/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/JobService.java
@@ -26,8 +26,8 @@ import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.stereotype.Service;
import com.egridcloud.udf.core.utils.ClassUtil;
-import com.egridcloud.udf.scheduler.SchException;
import com.egridcloud.udf.scheduler.SchedulerProperties;
+import com.egridcloud.udf.scheduler.client.SchException;
import com.egridcloud.udf.scheduler.job.AbstractBaseJob;
import com.egridcloud.udf.scheduler.meta.JobDetailMeta;
diff --git a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/TriggerService.java b/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/TriggerService.java
index 221a383..b1837f7 100644
--- a/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/TriggerService.java
+++ b/udf-starter-scheduler/src/main/java/com/egridcloud/udf/scheduler/service/TriggerService.java
@@ -31,8 +31,8 @@ import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.stereotype.Service;
import com.egridcloud.udf.core.utils.DateUtil;
-import com.egridcloud.udf.scheduler.SchException;
import com.egridcloud.udf.scheduler.SchedulerProperties;
+import com.egridcloud.udf.scheduler.client.SchException;
import com.egridcloud.udf.scheduler.meta.CronTriggerMeta;
import com.egridcloud.udf.scheduler.meta.JobDetailMeta;
import com.egridcloud.udf.scheduler.meta.SimpleTriggerMeta;