@Override public void validate() { initialize(); }
private ConstraintResult notSatisfied(ConstraintContext context) { if (!waitUntilMet) { return ConstraintResult.NEVER_SATISFIED; } return new ConstraintResult(ConstraintResult.SatisfiedState.NOT_SATISFIED, context.getCheckTimeMillis() + TimeUnit.SECONDS.toMillis(10)); } }
@Override public ConstraintResult check(ProgramSchedule schedule, ConstraintContext context) { long elapsedTime = context.getCheckTimeMillis() - context.getJob().getCreationTime(); if (elapsedTime >= millisAfterTrigger) { return ConstraintResult.SATISFIED; } return new ConstraintResult(ConstraintResult.SatisfiedState.NOT_SATISFIED, context.getJob().getCreationTime() + millisAfterTrigger); } }
@Test public void testConstraintCodec() { testSerDeser(new ProtoConstraint.ConcurrencyConstraint(3), new ConcurrencyConstraint(3)); testSerDeser(new ProtoConstraint.DelayConstraint(300000L, TimeUnit.MILLISECONDS), new DelayConstraint(300000L, TimeUnit.MILLISECONDS)); testSerDeser(new ProtoConstraint.LastRunConstraint(3600000L, TimeUnit.MILLISECONDS), new LastRunConstraint(3600000L, TimeUnit.MILLISECONDS)); testSerDeser(new ProtoConstraint.TimeRangeConstraint("02:00", "06:00", TimeZone.getDefault()), new TimeRangeConstraint("02:00", "06:00", TimeZone.getDefault())); }
private void assertSatisfied(boolean expectSatisfied, ConstraintResult constraintResult) { if (expectSatisfied) { Assert.assertEquals(ConstraintResult.SATISFIED, constraintResult); } else { Assert.assertNotEquals(ConstraintResult.SATISFIED, constraintResult.getSatisfiedState()); } } }
@Override public ConstraintProgramScheduleBuilder withConcurrency(int max) { constraints.add(new ConcurrencyConstraint(max)); return this; }
@Override public ScheduleBuilder withDelay(long delay, TimeUnit timeUnit) { constraints.add(new DelayConstraint(delay, timeUnit)); return this; }
@Override public ConstraintProgramScheduleBuilder withTimeWindow(String startTime, String endTime, TimeZone timeZone) { constraints.add(new TimeRangeConstraint(startTime, endTime, timeZone)); return this; }
@Override public ConstraintProgramScheduleBuilder withDurationSinceLastRun(long duration, TimeUnit unit) { constraints.add(new LastRunConstraint(duration, unit)); return this; }
private ConstraintContext createConstraintContext(Job job, long checkTime) { // should be fine to pass in null as the Store parameter, since its not used in this test return new ConstraintContext(job, checkTime, null); }
private void setStartAndRunning(Store store, ProgramRunId id) { setStartAndRunning(store, id, EMPTY_MAP, EMPTY_MAP); }
private void setStartAndRunning(Store store, ProgramRunId id) { setStartAndRunning(store, id, ImmutableMap.of(), ImmutableMap.of()); }
@Override public ConstraintResult check(ProgramSchedule schedule, ConstraintContext context) { long elapsedTime = context.getCheckTimeMillis() - context.getJob().getCreationTime(); if (elapsedTime >= millisAfterTrigger) { return ConstraintResult.SATISFIED; } return new ConstraintResult(ConstraintResult.SatisfiedState.NOT_SATISFIED, context.getJob().getCreationTime() + millisAfterTrigger); } }
private ConstraintResult notSatisfied(ConstraintContext context) { if (!waitUntilMet) { return ConstraintResult.NEVER_SATISFIED; } return new ConstraintResult(ConstraintResult.SatisfiedState.NOT_SATISFIED, context.getCheckTimeMillis() + TimeUnit.SECONDS.toMillis(10)); } }
private void assertSatisfied(boolean expectSatisfied, ConstraintResult constraintResult) { if (expectSatisfied) { Assert.assertEquals(ConstraintResult.SATISFIED, constraintResult); } else { Assert.assertNotEquals(ConstraintResult.SATISFIED, constraintResult.getSatisfiedState()); } } }
@Override public ConstraintProgramScheduleBuilder withConcurrency(int max) { constraints.add(new ConcurrencyConstraint(max)); return this; }
@Override public ScheduleBuilder withDelay(long delay, TimeUnit timeUnit) { constraints.add(new DelayConstraint(delay, timeUnit)); return this; }
@Override public ConstraintProgramScheduleBuilder withTimeWindow(String startTime, String endTime, TimeZone timeZone) { constraints.add(new TimeRangeConstraint(startTime, endTime, timeZone)); return this; }
@Override public ConstraintProgramScheduleBuilder withDurationSinceLastRun(long duration, TimeUnit unit) { constraints.add(new LastRunConstraint(duration, unit)); return this; }
@Override public void validate() { initialize(); }