attributes.put("azure.queue.expirationTime", message.getExpirationTime().toString()); attributes.put("azure.queue.messageId", message.getMessageId()); attributes.put("azure.queue.popReceipt", message.getPopReceipt());
@NotNull public List<QueueMessage> getQueueMessages(@NotNull StorageAccount storageAccount, @NotNull Queue queue) throws AzureCmdException { List<QueueMessage> qmList = new ArrayList<QueueMessage>(); try { CloudQueueClient client = getCloudQueueClient(storageAccount); String queueName = queue.getName(); CloudQueue cloudQueue = client.getQueueReference(queueName); for (CloudQueueMessage cqm : cloudQueue.peekMessages(32)) { String id = Strings.nullToEmpty(cqm.getId()); String content = Strings.nullToEmpty(cqm.getMessageContentAsString()); Calendar insertionTime = new GregorianCalendar(); if (cqm.getInsertionTime() != null) { insertionTime.setTime(cqm.getInsertionTime()); } Calendar expirationTime = new GregorianCalendar(); if (cqm.getExpirationTime() != null) { expirationTime.setTime(cqm.getExpirationTime()); } int dequeueCount = cqm.getDequeueCount(); qmList.add(new QueueMessage(id, queueName, content, insertionTime, expirationTime, dequeueCount)); } return qmList; } catch (Throwable t) { throw new AzureCmdException("Error retrieving the Queue Message list", t); } }
if (cqm.getExpirationTime() != null) { expirationTime.setTime(cqm.getExpirationTime());
@Override public Void preProcessResponse(CloudQueue queue, CloudQueueClient client, OperationContext context) throws Exception { if (this.getResult().getStatusCode() != HttpURLConnection.HTTP_CREATED) { this.setNonExceptionedRetryableFailure(true); return null; } // Parse the returned messages CloudQueueMessage returnedMessage = QueueMessageHandler.readMessages( this.getConnection().getInputStream(), queue.shouldEncodeMessage).get(0); message.setInsertionTime(returnedMessage.getInsertionTime()); message.setExpirationTime(returnedMessage.getExpirationTime()); message.setNextVisibleTime(returnedMessage.getNextVisibleTime()); message.setMessageId(returnedMessage.getMessageId()); message.setPopReceipt(returnedMessage.getPopReceipt()); return null; } };
@Override public Void preProcessResponse(CloudQueue queue, CloudQueueClient client, OperationContext context) throws Exception { if (this.getResult().getStatusCode() != HttpURLConnection.HTTP_CREATED) { this.setNonExceptionedRetryableFailure(true); return null; } // Parse the returned messages CloudQueueMessage returnedMessage = QueueMessageHandler.readMessages( this.getConnection().getInputStream(), queue.shouldEncodeMessage).get(0); message.setInsertionTime(returnedMessage.getInsertionTime()); message.setExpirationTime(returnedMessage.getExpirationTime()); message.setNextVisibleTime(returnedMessage.getNextVisibleTime()); message.setMessageId(returnedMessage.getMessageId()); message.setPopReceipt(returnedMessage.getPopReceipt()); return null; } };
@Test @Category({ DevFabricTests.class, DevStoreTests.class, SlowTests.class }) public void testAddMessageWithVisibilityTimeout() throws StorageException, InterruptedException { this.queue.addMessage(new CloudQueueMessage("message"), 20, 0, null, null); CloudQueueMessage m1 = this.queue.retrieveMessage(); Date d1 = m1.getExpirationTime(); this.queue.deleteMessage(m1); Thread.sleep(2000); this.queue.addMessage(new CloudQueueMessage("message"), 20, 0, null, null); CloudQueueMessage m2 = this.queue.retrieveMessage(); Date d2 = m2.getExpirationTime(); this.queue.deleteMessage(m2); assertTrue(d1.before(d2)); }
break; case TAzureStorageQueueInputProperties.FIELD_EXPIRATION_TIME: record.put(f.pos(), current.getExpirationTime()); break; case TAzureStorageQueueInputProperties.FIELD_DEQUEUE_COUNT:
break; case TAzureStorageQueueInputProperties.FIELD_EXPIRATION_TIME: record.put(f.pos(), current.getExpirationTime()); break; case TAzureStorageQueueInputProperties.FIELD_DEQUEUE_COUNT:
@Test @Category({ DevFabricTests.class, DevStoreTests.class, SlowTests.class }) public void testRetrieveMessage() throws StorageException, InterruptedException { this.queue.addMessage(new CloudQueueMessage("message"), 20, 0, null, null); OperationContext opContext = new OperationContext(); CloudQueueMessage message1 = this.queue.retrieveMessage(10, null /*QueueRequestOptions*/, opContext); Date expirationTime1 = message1.getExpirationTime(); Date insertionTime1 = message1.getInsertionTime(); Date nextVisibleTime1 = message1.getNextVisibleTime(); assertEquals(HttpURLConnection.HTTP_OK, opContext.getLastResult().getStatusCode()); this.queue.deleteMessage(message1); Thread.sleep(2000); this.queue.addMessage(new CloudQueueMessage("message"), 20, 0, null, null); CloudQueueMessage message2 = this.queue.retrieveMessage(); Date expirationTime2 = message2.getExpirationTime(); Date insertionTime2 = message2.getInsertionTime(); Date nextVisibleTime2 = message2.getNextVisibleTime(); this.queue.deleteMessage(message2); assertTrue(expirationTime1.before(expirationTime2)); assertTrue(insertionTime1.before(insertionTime2)); assertTrue(nextVisibleTime1.before(nextVisibleTime2)); }
private void VerifyAddMessageResult(CloudQueueMessage originalMessage, String expectedMessageContent) { assertFalse(Utility.isNullOrEmpty(originalMessage.getId())); assertNotNull(originalMessage.getInsertionTime()); assertNotNull(originalMessage.getExpirationTime()); assertFalse(Utility.isNullOrEmpty(originalMessage.getPopReceipt())); assertTrue(originalMessage.messageContent.equals(expectedMessageContent)); assertNotNull(originalMessage.getNextVisibleTime()); } }