Untitled
unknown
plain_text
2 years ago
1.7 kB
10
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