İkinci bölümde Azure Portal üzerinde nasıl bir Storage Account oluşturacağımıza değinmiştik. Bu bölümde ise .NET ile temel kuyruk işlemlerini nasıl yapabileceğimizden bahsedeceğim. Öyleyse başlayalım. 😊
Öncelikle Visual Studio’da bir Console Application oluşturalım.
Resim – 1
QueueStorageExample isimli projemizi oluşturduktan sonra işlemlerimiz için gerekli olan NuGet paketlerini indirebiliriz. Öncelikle Solution Explorer’da projemize sağ tıklayıp Manage NuGet Package for Solution dedikten sonra Azure.Core, Azure.Storage.Common, Azure.Storage.Queue ve System.Configuration.ConfigurationManager paketlerini indirelim.
Resim – 2
Gerekli NuGet paketlerini indirdiğimizden emin olduktan sonraki önemli adım uygulamamızın Azure Storage Hesabına erişimi için yetki vermektir. Bunun için öncelikle Azure Portal’e gidelim ve Storage hesabımızı bulalım.
Resim – 3
Daha sonra Resim – 3‘te gördüğümüz menüdeki Access Keys’e tıklayalım. Show Keys butonuna tıkladıktan sonra key1 altındaki Connection String’i aşağıdaki gibi projemizin App.config dosyasına kopyalayalım.
Resim – 4
App.config dosyamızda gerekli değişiklikleri yaptıktan sonra kodlama kısmına geçebiliriz. Öncelikle Program.cs dosyamıza aşağıdaki namespace’leri eklediğimizden emin olalım.
Resim – 5
Tüm bu adımlardan sonra .NET v12 için temel kuyruk işlemlerine geçebiliriz.
-
QueueStorage Client’ı oluşturmak
QueueClient sınıfı, Queue Storage’da depolanan kuyrukları almamızı sağlar. Aşağıdaki kod parçasında Storage Account’umuza ait connection string App.config dosyasından okunur. Daha sonra kuyruğu oluşturmak ve işlemek için kullanılacak bir QueueClient örneği oluşturulur. Diğer işlemlerimizi gerçekleştirmek için bu metodu çağıracağız.
Resim – 6
- Kuyruk Oluşturmak
Aşağıdaki kod parçasını kullanarak bir kuyruk oluşturabiliriz. CreateIfNotExists metodu ile bu işlemi gerçekleştiririz.
Resim – 7
Main metodunda CreateQueue metodunu çağıralım. Ardından queueName parametresine “queue-example” değerini verelim ve sonucu görelim.
Resim – 8
Console’da kuyruğun başarıyla oluştuğunu gördükten sonra tekrar Storage Account’umuza gidelim ve sol menüden Overview‘ı seçtikten sonra Queues seçeneğine tıklayalım.
Resim – 9
Aşağıda gördüğümüz gibi queue-example isimli kuyruğumuz başarıyla oluştu.
Resim – 10
- Kuyruğa Mesaj Eklemek
Kuyruğa mesaj eklemek için SendMessage metodunu çağırmamız gerekir. Aşağıdaki kod parçası öncelikle bir kuyruk yaratır (eğer yoksa) ve bu kuyruğa bir mesaj ekler. Bir kuyruk mesajı string veya byte array tipinde olabilir.
Resim – 11
Şimdi, InsertMessage metodumuzu Main metodunda çalıştıralım ve sonucu görelim.
Resim – 12
Console’da mesajlarımızın başarıyla eklenmesinden sonra Resim – 13‘teki gibi Azure Portal’e yansıdıklarını görüyoruz.
Resim – 13
- Kuyruktaki bir mesajı güncellemek
Mesajların güncellenmesi şu mantıkta çalışır:
Öncelikle güncellenecek mesaj dequeue edilir, default olarak kuyrukta 30 saniye kaybolur ve daha sonra güncel hali kuyruğa tekrar eklenir. Aşağıdaki kod parçası ile kuyruk mesajını yeni bir içerikle güncelleyebiliriz ve visibilityTimeOut parametresini 60 saniye daha uzatacak şekilde ayarlayabiliriz.
Kuyruktan mesaj dequeue edildiğinde o mesajın kuyruktaki görünmezlik süresini istediğimiz bir şekilde visibilityTimeOut ile belirtiriz.
Resim – 14
UpdateMessage metodunu Main metodunda çalıştıralım ve Azure Portal üzerinde message1’in güncellendiğini görelim:
Resim – 15
- Bir sonraki mesajı kuyruktan çıkarmak (dequeue)
Kuyruk içinde bir sonraki mesajı çıkarmak iki adımda gerçekleşir. Aşağıdaki kod parçasında gördüğümüz gibi ilk olarak ReceiveMessages‘ı çağırarak, sıradaki bir sonraki mesajı alıyoruz. ReceiveMessages‘dan dönen bu mesaj varsayılan olarak 30 saniye kuyrukta görünmez olur. İkinci adımda DeleteMessage metodu ile dequeue işlemini tamamlıyoruz.
Resim – 16
Kodumuzu çalıştıralım ve çıktımızı görelim.
Resim – 17
Azure Portal’de kuyruğu kontrol ettiğimizde message2’nin silindiğini görüyoruz.
Resim – 18
- Kuyruktaki mesaj sayısını almak
Kuyruktaki mesaj sayısını aşağıdaki kod parçasını kullanarak öğrenebiliriz.
Resim – 19
Main metodunda GetQueueLength metodunu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz.
Resim – 20
- Kuyrukta bir sonraki mesaja göz atmak
Resim – 21‘deki gibi PeekMessages metodunu çağırarak kuyruktaki mesajlara kuyruktan silmeden göz atabiliriz. Bu metoda maxMessages parametresi vererek belirli sayıdaki mesaja göz atabiliriz. Metodu boş gönderdiğimizde default mesajı getirir.
Resim – 21
PeekMessage metodunu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz.
Resim – 22
- Kuyruğu silmek
Aşağıdaki kodu kullanarak oluşturduğumuz kuyruğu silebiliriz.
Resim – 23
Kodumuzu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz.
Resim – 24
Azure Queue Storage serisinin son bölümünde basit bir Console Application oluşturarak temel kuyruk işlemlerini gerçekleştirmiş olduk.
Faydalı olması dileğiyle. 😊
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
https://docs.microsoft.com/tr-tr/azure/storage/queues/storage-dotnet-how-to-use-queues?tabs=dotnet
TAGS: Azure Queue Storage, message queue systems, queue