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());