? delayedMessageWrapper.getRequestDate() : System.currentTimeMillis(); delay = ((Date) delayValue).getTime() - current;
private void releaseMessageAfterDelay(final Message<?> message, long delay) { Message<?> delayedMessage = message; DelayedMessageWrapper messageWrapper = null; if (message.getPayload() instanceof DelayedMessageWrapper) { messageWrapper = (DelayedMessageWrapper) message.getPayload(); } else { messageWrapper = new DelayedMessageWrapper(message, System.currentTimeMillis()); delayedMessage = getMessageBuilderFactory() .withPayload(messageWrapper) .copyHeaders(message.getHeaders()) .build(); this.messageStore.addMessageToGroup(this.messageGroupId, delayedMessage); } Runnable releaseTask; if (this.messageStore instanceof SimpleMessageStore) { final Message<?> messageToSchedule = delayedMessage; releaseTask = () -> releaseMessage(messageToSchedule); } else { final UUID messageId = delayedMessage.getHeaders().getId(); releaseTask = () -> { Message<?> messageToRelease = getMessageById(messageId); if (messageToRelease != null) { releaseMessage(messageToRelease); } }; } getTaskScheduler().schedule(releaseTask, new Date(messageWrapper.getRequestDate() + delay)); }
? delayedMessageWrapper.getRequestDate() : System.currentTimeMillis(); delay = ((Date) delayValue).getTime() - current;
private void releaseMessageAfterDelay(final Message<?> message, long delay) { Message<?> delayedMessage = message; DelayedMessageWrapper messageWrapper = null; if (message.getPayload() instanceof DelayedMessageWrapper) { messageWrapper = (DelayedMessageWrapper) message.getPayload(); } else { messageWrapper = new DelayedMessageWrapper(message, System.currentTimeMillis()); delayedMessage = getMessageBuilderFactory() .withPayload(messageWrapper) .copyHeaders(message.getHeaders()) .build(); this.messageStore.addMessageToGroup(this.messageGroupId, delayedMessage); } Runnable releaseTask; if (this.messageStore instanceof SimpleMessageStore) { final Message<?> messageToSchedule = delayedMessage; releaseTask = () -> releaseMessage(messageToSchedule); } else { final UUID messageId = delayedMessage.getHeaders().getId(); releaseTask = () -> { Message<?> messageToRelease = getMessageById(messageId); if (messageToRelease != null) { releaseMessage(messageToRelease); } }; } getTaskScheduler().schedule(releaseTask, new Date(messageWrapper.getRequestDate() + delay)); }