我們宣布
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用Amazon SQS訊息佇列
訊息佇列是邏輯容器,用於在 Amazon SQS 中可靠地傳送訊息。有兩種佇列類型:標準和先進先出 (FIFO)。若要進一步了解佇列和這些類型之間的差異,請參Amazon SQS開發人員指南。
本主題說明如何使用AWS SDK for Java建立、列出、刪除和取得 Amazon SQS 佇列的 URL。
建立佇列
使用卓越亞馬遜 SQS 客户端的createQueue
方法,提供CreateQueueRequest物件,描述佇列參數。
匯入
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;
Code
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); CreateQueueRequest create_request = new CreateQueueRequest(QUEUE_NAME) .addAttributesEntry("DelaySeconds", "60") .addAttributesEntry("MessageRetentionPeriod", "86400"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }
您可以使用簡化形式createQueue
(只需要隊列名稱)來創建標準隊列。
sqs.createQueue("MyQueue" + new Date().getTime());
請參閱 GitHub 上的完整範例
列出佇列
若要列出Amazon SQS佇列,請呼叫 AmazonSQS 客户端的listQueues
方法。
匯入
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesResult;
Code
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); ListQueuesResult lq_result = sqs.listQueues(); System.out.println("Your SQS Queue URLs:"); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }
使用listQueues
重載沒有任何參數返回所有佇列。您可以依以下項目篩選返回的結果:ListQueuesRequest
物件。
匯入
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesRequest;
Code
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String name_prefix = "Queue"; lq_result = sqs.listQueues(new ListQueuesRequest(name_prefix)); System.out.println("Queue URLs with prefix: " + name_prefix); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }
請參閱 GitHub 上的完整範例
取得佇列 URL
致電亞馬遜 SQS 客户的getQueueUrl
方法。
匯入
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
Code
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String queue_url = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl();
請參閱 GitHub 上的完整範例
刪除佇列
提供佇列的URL到卓越亞馬遜 SQS 客户的deleteQueue
方法。
匯入
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
Code
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); sqs.deleteQueue(queue_url);
請參閱 GitHub 上的完整範例
詳細資訊
-
操作説明Amazon SQS佇列的運作中的Amazon SQS開發人員指南
-
CreateQueue中的Amazon SQSAPI 參考
-
GetQueueUrl中的Amazon SQSAPI 參考
-
ListQueues中的Amazon SQSAPI 參考
-
DeleteQueues中的Amazon SQSAPI 參考