使用Amazon SQS訊息佇列 - AWS SDK for Java 1.

我們宣布了即將推 end-of-support 出的 AWS SDK for Java (v1)。我們建議您移轉至 AWS SDK for Java v2。有關日期,其他詳細信息以及如何遷移的信息,請參閱鏈接的公告。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用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 上的完整範例

詳細資訊