protected final String sendSQSMessage(NevadoQueue queue, String serializedMessage) throws JMSException { SQSQueue sqsQueue = getSQSQueue(queue); if (_log.isDebugEnabled()) { _log.debug("Sending message: " + serializedMessage); } return sqsQueue.sendMessage(serializedMessage); }
public final void resetMessage(NevadoMessage message) throws JMSException { String sqsReceiptHandle = (String) message.getNevadoProperty(NevadoProperty.SQSReceiptHandle); if (sqsReceiptHandle == null) { throw new JMSException( "Message does not contain an SQSReceiptHandle, so cannot be reset. " + "Did this come from an SQS queue?"); } SQSQueue sqsQueue = getSQSQueue(message.getNevadoDestination()); sqsQueue.setMessageVisibilityTimeout(sqsReceiptHandle, 0); }
protected final SQSMessage receiveSQSMessage( NevadoConnection connection, NevadoDestination destination, long timeoutMs, long startTimeMs, SQSQueue sqsQueue) throws JMSException, InterruptedException { SQSMessage sqsMessage; while (true) { if (connection.isRunning()) { sqsMessage = sqsQueue.receiveMessage(); if (sqsMessage != null && !connection.isRunning()) { // Connection was stopped while the REST call to SQS was being made try { sqsQueue.setMessageVisibilityTimeout( sqsMessage.getReceiptHandle(), 0); // Make it immediately available to the next requestor } catch (JMSException e) { String exMessage = "Unable to reset visibility timeout for message: " + e.getMessage(); _log.warn( exMessage, e); // Non-fatal. Just means the message will disappear until the visibility // timeout expires. } sqsMessage = null; } } else { _log.debug("Not accepting messages. Connection is paused or not started."); sqsMessage = null; } // Check for message or timeout if (sqsMessage != null || (timeoutMs > -1 && (new Date().getTime() - startTimeMs) >= timeoutMs)) { break; } Thread.sleep(_receiveCheckIntervalMs); } if (_log.isDebugEnabled()) { _log.debug( "Received message: " + ((sqsMessage != null) ? sqsMessage.getMessageBody() : null)); } return sqsMessage; }
@Override public void deleteQueue(NevadoQueue queue) throws JMSException { SQSQueue sqsQueue = getSQSQueue(queue); sqsQueue.deleteQueue(); }
public final void deleteMessage(NevadoMessage message) throws JMSException { SQSQueue sqsQueue = getSQSQueue(message.getNevadoDestination()); String sqsReceiptHandle = getSQSReceiptHandle(message); sqsQueue.deleteMessage(sqsReceiptHandle); }