本文提供Java语言的消息消费示例代码。
public class ConsumerDemo {
public static void main(String[] args) {
CloudAccount account = new CloudAccount("YourAccessId", "YourAccessKey", "MNSEndpoint");
//客户端初始化。
MNSClient client = account.getMNSClient();
//循环消费10条消息。
try{
CloudQueue queue = client.getQueueRef("TestQueue");
for (int i = 0; i < 10; i++)
{
Message popMsg = queue.popMessage();
if (popMsg != null){
System.out.println("message handle: " + popMsg.getReceiptHandle());
// 默认会做base64解码。
System.out.println("message body: " + popMsg.getMessageBodyAsString());
// 消息body的原始数据,不做base64解码。
System.out.println("message body: " + popMsg.getMessageBodyAsRawString ());
System.out.println("message id: " + popMsg.getMessageId());
System.out.println("message dequeue count:" + popMsg.getDequeueCount());
//删除已经消费的消息。
queue.deleteMessage(popMsg.getReceiptHandle());
System.out.println("delete message successfully.\n");
}
else{
System.out.println("message not exist in TestQueue.\n");
}
}
} catch (ClientException ce)
{
System.out.println("Something wrong with the network connection between client and MNS service."
+ "Please check your network and DNS availablity.");
ce.printStackTrace();
} catch (ServiceException se)
{
se.printStackTrace();
logger.error("MNS exception requestId:" + se.getRequestId(), se);
if (se.getErrorCode() != null) {
if (se.getErrorCode().equals("QueueNotExist"))
{
System.out.println("Queue is not exist.Please create before use");
} else if (se.getErrorCode().equals("TimeExpired"))
{
System.out.println("The request is time expired. Please check your local machine timeclock");
}
//更多错误码信息,请参见错误码。
}
} catch (Exception e)
{
System.out.println("Unknown exception happened!");
e.printStackTrace();
}
client.close();
}
}
在文档使用中是否遇到以下问题
更多建议
匿名提交