Übung: Hinzufügen einer Nachricht zur Warteschlange
Nun, da alle Anforderungen erfüllt sind, können Sie Code schreiben, mit dem eine neue Speicherwarteschlange erstellt und eine Nachricht hinzugefügt wird. Wir fügen diesen Code üblicherweise in unsere Front-End-Anwendungen ein, die die Daten generieren.
Hinzufügen von Code zum Senden einer Nachricht
Das Beispielprogramm enthält eine SendMessageAsync
-Methode. In diesem Schritt schreiben Sie Code, um diese Methode zu implementieren.
Öffnen Sie die Datei
Program.cs
in Ihrem Code-Editor.Suchen Sie nach der
SendMessageAsync
-Methode.Entfernen Sie die Zeile, die eine
NotImplementedException
auslöst.Fügen Sie den folgenden Code am Anfang der
SendMessageAsync
-Methode hinzu, um die Details des neuen Artikels von Benutzer*innen abzurufen.// Get input from user Console.WriteLine("Enter headline: "); string headline = Console.ReadLine(); Console.WriteLine("Enter location: "); string location = Console.ReadLine(); NewsArticle article = new NewsArticle() { Headline = headline, Location = location };
Dieser Code erstellt ein NewsArticle-Objekt, das wir in unserer Warteschlange speichern möchten. Dazu serialisieren Sie das Objekt in JSON und verwenden dann die
SendMessageAsync
-Methode, um die Nachricht an unsere Warteschlange zu senden. Fügen Sie diesen Code derSendMessageAsyc
-Methode nach der Zeile hinzu, die einNewsArticle
-Objekt instanziiert.// Build and send the message to the queue string message = JsonSerializer.Serialize(article); Response<SendReceipt> response = await queueClient.SendMessageAsync(message); SendReceipt sendReceipt = response.Value;
Schließlich geben wir in der Konsole einige Informationen zu
SendReceipt
aus, die beim Senden der Nachricht in der Antwort enthalten waren. Für diese Anwendung gibt es diese Felder rein zu Informationszwecken. Sie können aber in einer tatsächlichen Anwendung verwendet werden, um Daten über die an die Warteschlange gesendete Nachricht zu protokollieren oder nachzuverfolgen.Console.WriteLine($"Message sent. Message id={sendReceipt.MessageId} Expiration time={sendReceipt.ExpirationTime}"); Console.WriteLine();
Die
SendMessageAsync
-Methode sollte nach Abschluss wie folgt aussehen.static async Task SendMessageAsync(QueueClient queueClient) { // Get input from user Console.WriteLine("Enter headline: "); string headline = Console.ReadLine(); Console.WriteLine("Enter location: "); string location = Console.ReadLine(); NewsArticle article = new NewsArticle() { Headline = headline, Location = location }; // Build and send the message to the queue string message = JsonSerializer.Serialize(article); Response<SendReceipt> response = await queueClient.SendMessageAsync(message); SendReceipt sendReceipt = response.Value; // Print out the send receipt Console.WriteLine($"Message sent. Message id={sendReceipt.MessageId} Expiration time={sendReceipt.ExpirationTime}"); Console.WriteLine(); }
Ausführen der Anwendung
Sie können nun das Programm erstellen und ausführen, um Ihre erste Nachricht an die Warteschlange zu senden.
Stellen Sie sicher, dass Sie die Datei im Code-Editor speichern, und verwenden Sie dann den
dotnet build
-Befehl in Cloud Shell, um die Anwendung zu erstellen.dotnet build
Führen Sie die Anwendung aus.
dotnet run
Wenn die Anwendung ausgeführt wird, wählen Sie Option 1 aus, um eine Nachricht zu senden, und geben Sie dann eine Überschrift und einen Speicherort Ihrer Wahl ein, um eine Nachricht an die Warteschlange zu senden. Wenn das Menü erneut angezeigt wird, können Sie „X“ verwenden, um das Programm zu beenden.
Die folgende Ausgabe wird angezeigt.
What operation would you like to perform? 1 - Send message 2 - Peek at the next message 3 - Receive message X - Exit program 1 Enter headline: World leaders to meet at economic summit Enter location: Paris, France Message sent. Message id=638160c9-f136-49b3-a06c-d2a45739fc4e Expiration time=10/14/2021 3:49:42 PM +00:00 What operation would you like to perform? 1 - Send message 2 - Peek at the next message 3 - Receive message X - Exit program X
Überprüfen der Ergebnisse
Sie können Warteschlangen im Azure-Portal mit der Azure CLI oder mit Azure PowerShell überprüfen. In diesem Beispiel wird die Azure CLI verwendet, um den Status der Warteschlange zu überprüfen.
Führen Sie den folgenden Befehl in der Cloud Shell-Umgebung aus.
az storage message peek --queue-name newsqueue --connection-string $MY_STORAGE_CONNECTION_STRING
Dieser Befehl sollte die Informationen für Ihre Nachricht ausgeben, die ungefähr wie folgt aussieht:
[
{
"content": "{\"Headline\":\"World leaders to meet at economic summit\",\"Location\":\"Paris, France\"}",
"dequeueCount": 0,
"expirationTime": "2021-10-14T15:49:42+00:00",
"id": "638160c9-f136-49b3-a06c-d2a45739fc4e",
"insertionTime": "2021-10-07T15:49:42+00:00",
"popReceipt": null,
"timeNextVisible": null
}
]
Sie benötigen Hilfe? Lesen Sie unseren Leitfaden zur Problembehandlung, oder geben Sie spezifisches Feedback, indem Sie ein Problem melden.