@Override public boolean canRelease(MessageGroup messages) { long elapsedTime = System.currentTimeMillis() - findEarliestTimestamp(messages); return messages.isComplete() || messages.getMessages().size() >= this.threshold || elapsedTime > this.timeout; }
@Test public void testIncompleteListWithCount() { Message<String> message = MessageBuilder.withPayload("test1") .setSequenceSize(2).build(); SimpleMessageGroup messages = new SimpleMessageGroup("FOO"); messages.add(message); TimeoutCountSequenceSizeReleaseStrategy releaseStrategy = new TimeoutCountSequenceSizeReleaseStrategy(1, TimeoutCountSequenceSizeReleaseStrategy.DEFAULT_TIMEOUT); assertTrue(releaseStrategy.canRelease(messages)); }
public static ReleaseStrategy timeoutOrThresholdReleaseStrategy(int messageCountThreshold, long timeoutInMillis) { return new TimeoutCountSequenceSizeReleaseStrategy(messageCountThreshold, timeoutInMillis); } }
@Test public void testIncompleteList() { Message<String> message = MessageBuilder.withPayload("test1") .setSequenceSize(2).build(); SimpleMessageGroup messages = new SimpleMessageGroup("FOO"); messages.add(message); TimeoutCountSequenceSizeReleaseStrategy releaseStrategy = new TimeoutCountSequenceSizeReleaseStrategy(); assertFalse(releaseStrategy.canRelease(messages)); }
public static ReleaseStrategy timeoutOrThresholdReleaseStrategy(int messageCountThreshold, long timeoutInMillis) { return new TimeoutCountSequenceSizeReleaseStrategy(messageCountThreshold, timeoutInMillis); } }
@Test public void testIncompleteListWithTimeout() { Message<String> message = MessageBuilder.withPayload("test1") .setSequenceSize(2).build(); SimpleMessageGroup messages = new SimpleMessageGroup("FOO"); messages.add(message); TimeoutCountSequenceSizeReleaseStrategy releaseStrategy = new TimeoutCountSequenceSizeReleaseStrategy(TimeoutCountSequenceSizeReleaseStrategy.DEFAULT_THRESHOLD, -100); assertTrue(releaseStrategy.canRelease(messages)); }
@Override public boolean canRelease(MessageGroup messages) { long elapsedTime = System.currentTimeMillis() - findEarliestTimestamp(messages); return messages.isComplete() || messages.getMessages().size() >= this.threshold || elapsedTime > this.timeout; }