Version 4 (V4) von SDK for .NET ist in der Vorschauversion! Informationen zu dieser neuen Version in der Vorschauversion finden Sie im Entwicklerhandbuch AWS SDK for .NET (Vorschauversion von Version 4).
Bitte beachten Sie, dass sich Version 4 des SDK in der Vorschauversion befindet und sich sein Inhalt daher ändern kann.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Löschen von Amazon SQS SQS-Warteschlangen
Dieses Beispiel zeigt Ihnen, wie Sie die verwenden, um eine Amazon SQS SQS-Warteschlange SDK for .NET zu löschen. Die Anwendung löscht die Warteschlange, wartet bis zu einer bestimmten Zeit, bis die Warteschlange gelöscht ist, und zeigt dann eine Liste der verbleibenden Warteschlangen an.
Wenn Sie keine Befehlszeilenargumente angeben, zeigt die Anwendung einfach eine Liste der vorhandenen Warteschlangen an.
Die folgenden Abschnitte enthalten Auszüge aus diesem Beispiel. Der vollständige Code für das Beispiel wird danach angezeigt und kann unverändert erstellt und ausgeführt werden.
Themen
Lösche die Warteschlange
Das folgende Snippet löscht die Warteschlange, die durch die angegebene Warteschlangen-URL identifiziert wurde.
Das Beispiel am Ende dieses Themas zeigt, wie dieses Snippet verwendet wird.
//
// Method to delete an SQS queue
private static async Task DeleteQueue(IAmazonSQS sqsClient, string qUrl)
{
Console.WriteLine($"Deleting queue {qUrl}...");
await sqsClient.DeleteQueueAsync(qUrl);
Console.WriteLine($"Queue {qUrl} has been deleted.");
}
Warten Sie, bis die Warteschlange weg ist
Das folgende Snippet wartet, bis der Löschvorgang abgeschlossen ist, was 60 Sekunden dauern kann.
Das Beispiel am Ende dieses Themas zeigt, wie dieser Codeausschnitt verwendet wird.
//
// Method to wait up to a given number of seconds
private static async Task Wait(
IAmazonSQS sqsClient, int numSeconds, string qUrl)
{
Console.WriteLine($"Waiting for up to {numSeconds} seconds.");
Console.WriteLine("Press any key to stop waiting. (Response might be slightly delayed.)");
for(int i=0; i<numSeconds; i++)
{
Console.Write(".");
Thread.Sleep(1000);
if(Console.KeyAvailable) break;
// Check to see if the queue is gone yet
var found = false;
ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
foreach(var url in responseList.QueueUrls)
{
if(url == qUrl)
{
found = true;
break;
}
}
if(!found) break;
}
}
Zeigt eine Liste vorhandener Warteschlangen
Der folgende Ausschnitt zeigt eine Liste der vorhandenen Warteschlangen in der Region des SQS-Clients.
Das Beispiel am Ende dieses Themas zeigt, wie dieser Codeausschnitt verwendet wird.
//
// Method to show a list of the existing queues
private static async Task ListQueues(IAmazonSQS sqsClient)
{
ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
Console.WriteLine("\nList of queues:");
foreach(var qUrl in responseList.QueueUrls)
Console.WriteLine($"- {qUrl}");
}
Vollständiger Code
Dieser Abschnitt enthält relevante Referenzen und den vollständigen Code für dieses Beispiel.
NuGet Pakete:
Elemente der Programmierung:
using System;
using System.Threading;
using System.Threading.Tasks;
using Amazon.SQS;
using Amazon.SQS.Model;
namespace SQSDeleteQueue
{
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// Class to update a queue
class Program
{
private const int TimeToWait = 60;
static async Task Main(string[] args)
{
// Create the Amazon SQS client
var sqsClient = new AmazonSQSClient();
// If no command-line arguments, just show a list of the queues
if(args.Length == 0)
{
Console.WriteLine("\nUsage: SQSCreateQueue queue_url");
Console.WriteLine(" queue_url - The URL of the queue you want to delete.");
Console.WriteLine("\nNo arguments specified.");
Console.Write("Do you want to see a list of the existing queues? ((y) or n): ");
var response = Console.ReadLine();
if((string.IsNullOrEmpty(response)) || (response.ToLower() == "y"))
await ListQueues(sqsClient);
return;
}
// If given a queue URL, delete that queue
if(args[0].StartsWith("https://sqs."))
{
// Delete the queue
await DeleteQueue(sqsClient, args[0]);
// Wait for a little while because it takes a while for the queue to disappear
await Wait(sqsClient, TimeToWait, args[0]);
// Show a list of the remaining queues
await ListQueues(sqsClient);
}
else
{
Console.WriteLine("The command-line argument isn't a queue URL:");
Console.WriteLine($"{args[0]}");
}
}
//
// Method to delete an SQS queue
private static async Task DeleteQueue(IAmazonSQS sqsClient, string qUrl)
{
Console.WriteLine($"Deleting queue {qUrl}...");
await sqsClient.DeleteQueueAsync(qUrl);
Console.WriteLine($"Queue {qUrl} has been deleted.");
}
//
// Method to wait up to a given number of seconds
private static async Task Wait(
IAmazonSQS sqsClient, int numSeconds, string qUrl)
{
Console.WriteLine($"Waiting for up to {numSeconds} seconds.");
Console.WriteLine("Press any key to stop waiting. (Response might be slightly delayed.)");
for(int i=0; i<numSeconds; i++)
{
Console.Write(".");
Thread.Sleep(1000);
if(Console.KeyAvailable) break;
// Check to see if the queue is gone yet
var found = false;
ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
foreach(var url in responseList.QueueUrls)
{
if(url == qUrl)
{
found = true;
break;
}
}
if(!found) break;
}
}
//
// Method to show a list of the existing queues
private static async Task ListQueues(IAmazonSQS sqsClient)
{
ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
Console.WriteLine("\nList of queues:");
foreach(var qUrl in responseList.QueueUrls)
Console.WriteLine($"- {qUrl}");
}
}
}
Weitere Überlegungen
-
Der
DeleteQueueAsync
API-Aufruf überprüft nicht, ob die Warteschlange, die Sie löschen, als Warteschlange für unzustellbare Briefe verwendet wird. Ein ausgefeilteres Verfahren könnte dies überprüfen.
-
Sie können die Liste der Warteschlangen und die Ergebnisse dieses Beispiels auch in der Amazon SQS SQS-Konsole
sehen.