You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2015/11/16 18:41:30 UTC
[2/2] zest-java git commit: lib/scheduler: fix 1s mismatch with
underlying cron library
lib/scheduler: fix 1s mismatch with underlying cron library
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/30f55595
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/30f55595
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/30f55595
Branch: refs/heads/develop
Commit: 30f555958404e772a4a6faf40ac67ec0c92db800
Parents: 3330314
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Nov 16 18:41:15 2015 +0100
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Nov 16 18:41:15 2015 +0100
----------------------------------------------------------------------
.../org/apache/zest/library/scheduler/CronSchedule.java | 3 ++-
.../apache/zest/library/scheduler/internal/Execution.java | 4 ++--
.../org/apache/zest/library/scheduler/CronScheduleTest.java | 9 +++++----
3 files changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/30f55595/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/CronSchedule.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/CronSchedule.java b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/CronSchedule.java
index 9ee212d..a1414af 100644
--- a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/CronSchedule.java
+++ b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/CronSchedule.java
@@ -83,7 +83,8 @@ public interface CronSchedule
{
actualFrom = firstRun;
}
- Long nextRun = createCron().firstRunAfter( actualFrom );
+ // TODO:PM cron "next run" handling mismatch with the underlying cron library
+ Long nextRun = createCron().firstRunAfter( actualFrom + 1000 );
LOGGER.info( "CronSchedule::nextRun({}) is {}", from, firstRun );
return nextRun;
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/30f55595/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/internal/Execution.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/internal/Execution.java b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/internal/Execution.java
index 5fd4c5e..7eb53ea 100644
--- a/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/internal/Execution.java
+++ b/libraries/scheduler/src/main/java/org/apache/zest/library/scheduler/internal/Execution.java
@@ -171,7 +171,7 @@ public interface Execution
{
submitTaskForExecution( oldScheduleTime );
Schedule schedule = uow.get( Schedule.class, oldScheduleTime.scheduleIdentity() );
- long nextTime = schedule.nextRun( now + 1000 );
+ long nextTime = schedule.nextRun( now );
if( nextTime != Long.MIN_VALUE )
{
ScheduleTime newScheduleTime = new ScheduleTime( schedule.identity().get(), nextTime );
@@ -207,7 +207,7 @@ public interface Execution
public void dispatchForExecution( Schedule schedule )
{
long now = System.currentTimeMillis();
- long nextRun = schedule.nextRun( now + 1000 );
+ long nextRun = schedule.nextRun( now );
if( nextRun > 0 )
{
synchronized( lock )
http://git-wip-us.apache.org/repos/asf/zest-java/blob/30f55595/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
index 8166e32..ed999fd 100644
--- a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
+++ b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
@@ -29,7 +29,7 @@ import org.apache.zest.test.EntityTestAssembler;
import org.joda.time.DateTime;
import org.junit.Test;
-import static org.hamcrest.number.IsCloseTo.closeTo;
+import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
public class CronScheduleTest extends AbstractZestTest
@@ -57,11 +57,12 @@ public class CronScheduleTest extends AbstractZestTest
builder.instance().task().set( task );
builder.instance().cronExpression().set( "*/15 * * * * *" );
CronSchedule schedule = builder.newInstance();
- long runAt = schedule.nextRun( System.currentTimeMillis() );
+ long nextRun = schedule.nextRun( System.currentTimeMillis() );
for( int i = 0; i < 1000; i++ )
{
- long nextRun = schedule.nextRun( runAt + 1000 ); // Needs to push forward one second...
- assertThat( "At:" + i, (double) nextRun, closeTo( runAt + 15000, 50 ) );
+ long previousRun = nextRun;
+ nextRun = schedule.nextRun( previousRun );
+ assertThat( "nextRun( previousRun + 1s ) @" + i, nextRun, is( previousRun + 15000 ) );
}
work.discard();
}