自 2024 年 7 月 31 日起, 適用於 Java 的 AWS SDK 1.x 已進入維護模式,將於 2025 年 12 月 31 日end-of-support
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon SQS 訊息佇列
訊息佇列是用來可靠地傳送訊息的邏輯容器 Amazon SQS。有兩種佇列類型:標準和先進先出 (FIFO)。若要進一步了解佇列和這些類型之間的差異,請參閱 Amazon SQS 開發人員指南。
本主題說明如何使用 建立、列出、刪除和取得 Amazon SQS 佇列的 URL 適用於 Java 的 AWS SDK。
建立佇列
使用 AmazonSQS 用戶端的 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
呼叫 AmazonSQS 用戶端的 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 提供給 AmazonSQS 用戶端的 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
-
Amazon SQS API 參考中的 CreateQueue
-
API Amazon SQS 參考中的 GetQueueUrl
-
Amazon SQS API 參考中的 ListQueues
-
Amazon SQS API 參考中的 DeleteQueues