Untitled
unknown
plain_text
a year ago
1.7 kB
8
Indexable
public async Task StartPublishing() { var factory = new ConnectionFactory { Uri = new Uri("amqps://vwsiemxb:S0Ww8DN0EDsYP3kp5iwBD-kl4PFkFUb1@moose.rmq.cloudamqp.com/vwsiemxb") }; var mailList = await _outboxMessageRepository.GetAllAsync(x => !x.IsProcessed); if (mailList == null || !mailList.Any()) { Console.WriteLine("Gönderilecek mesaj bulunamadı."); return; } var tasks = new List<Task>(); foreach (var item in mailList) { string message = $"{item.Payload}"; byte[] byteMessage = Encoding.UTF8.GetBytes(message); item.IsProcessed = true; _outboxMessageRepository.Update(item); try { // Mesajı yayınla ve işlemi bir Task'e ekleyerek listeye ekle var task = PublishMessage(factory, item.Type, byteMessage); tasks.Add(task); } catch (Exception ex) { Console.WriteLine($"Hata: Mesaj gönderilemedi. Hata: {ex.Message}"); // Hata durumunda gerekli işlemleri yapabilirsiniz. // Mesaj gönderilmediği için IsProcessed değerini false olarak ayarla //item.IsProcessed = false; //_outboxMessageRepository.Update(item); } await Task.Delay(1000); // 1 saniye bekle } // Tüm mesajların işlenmesini bekleyin await Task.WhenAll(tasks); await _unitOfWork.CommitAsync(); // Tüm mesajlar yayınlandıktan sonra CommitAsync çağırın }
Editor is loading...
Leave a Comment