You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@griffin.apache.org by gu...@apache.org on 2017/06/13 07:34:38 UTC
incubator-griffin git commit: 20170613 15 28
Repository: incubator-griffin
Updated Branches:
refs/heads/master ae6a308b2 -> 17d0e9af8
20170613 15 28
Author: Chen <xi...@lm-shc-16501061.corp.ebay.com>
Closes #71 from justACT/20170613-15-28.
Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin/commit/17d0e9af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin/tree/17d0e9af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin/diff/17d0e9af
Branch: refs/heads/master
Commit: 17d0e9af8c6b393927fb91a5a5c72ea7421cec04
Parents: ae6a308
Author: Chen <xi...@lm-shc-16501061.corp.ebay.com>
Authored: Tue Jun 13 15:34:30 2017 +0800
Committer: Lionel Liu <bh...@163.com>
Committed: Tue Jun 13 15:34:30 2017 +0800
----------------------------------------------------------------------
.../core/schedule/SchedulerServiceImpl.java | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/17d0e9af/service/src/main/java/org/apache/griffin/core/schedule/SchedulerServiceImpl.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerServiceImpl.java b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerServiceImpl.java
index 7c70623..52fbead 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerServiceImpl.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerServiceImpl.java
@@ -108,12 +108,13 @@ public class SchedulerServiceImpl implements SchedulerService{
@Override
public Boolean addJob(String groupName, String jobName, String measureName, SchedulerRequestBody schedulerRequestBody) {
- Date jobStartTime=null;
int periodTime = 0;
- SimpleDateFormat format=new SimpleDateFormat("YYYYMMdd HH:mm:ss");
+ Date jobStartTime=null;
+ SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd HH:mm:ss");
try{
periodTime = Integer.parseInt(schedulerRequestBody.getPeriodTime());
jobStartTime=format.parse(schedulerRequestBody.getJobStartTime());
+ setJobStartTime(jobStartTime,periodTime);
}catch (Exception e){
LOGGER.info("jobStartTime or periodTime format error! "+e);
return false;
@@ -135,6 +136,7 @@ public class SchedulerServiceImpl implements SchedulerService{
.storeDurably()
.withIdentity(jobKey)
.build();
+ //set JobDetail
setJobDetail(jobDetail,schedulerRequestBody,measureName,groupName,jobName);
scheduler.addJob(jobDetail, false);
}
@@ -155,6 +157,17 @@ public class SchedulerServiceImpl implements SchedulerService{
}
}
+ public void setJobStartTime(Date jobStartTime,int periodTime){
+ long currentTimestamp=System.currentTimeMillis();
+ long jobstartTimestamp=jobStartTime.getTime();
+ //if jobStartTime is before currentTimestamp, set it as the latest trigger time in the future
+ if(jobStartTime.before(new Date(currentTimestamp))){
+ long n=(currentTimestamp-jobstartTimestamp)/(long)(periodTime*1000);
+ jobstartTimestamp=jobstartTimestamp+(n+1)*(long)(periodTime*1000);
+ jobStartTime.setTime(jobstartTimestamp);
+ }
+ }
+
public void setJobDetail(JobDetail jobDetail,SchedulerRequestBody schedulerRequestBody,String measureName,String groupName,String jobName){
jobDetail.getJobDataMap().put("measure", measureName);
jobDetail.getJobDataMap().put("sourcePat", schedulerRequestBody.getSourcePat());