专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
目录
相关文章推荐
地刊速览  ·  Nat ... ·  3 天前  
地刊速览  ·  Nat ... ·  3 天前  
今天看啥  ›  专栏  ›  dotNET跨平台

动手造轮子 -  实现支持 Ack 的内存队列

dotNET跨平台  · 公众号  ·  · 2025-01-12 08:00
    

文章预览

动手造轮子 -  实现一个支持 Ack 的内存队列 Intro 有些时候我们会希望从消息队列里消费消息时只有消费成功 Ack 之后才将消息从队列中移除,我们尝试来实现一个支持 Ack 的队列 Sample 使用示例如下: var  ackQueue =  new  AckQueue( new  AckQueueOptions() {     AckTimeout = TimeSpan.FromSeconds( 1 ) }); await  ackQueue.EnqueueAsync( new  CounterEvent { Counter =  1  }); await  ackQueue.EnqueueAsync( new  CounterEvent { Counter =  2  }); var  event1 =  await  ackQueue.DequeueAsync (); ArgumentNullException.ThrowIfNull(event1); Console.WriteLine(@ $"event1:  {event1.ToJson()} " ); var  event2 =  await  ackQueue.DequeueAsync (); ArgumentNullException.ThrowIfNull(event2); Console.WriteLine(@ $"event2:  {event2.ToJson()} " ); await  ackQueue.AckMessageAsync(event2.Properties.EventId); var  event3 =  await  ackQueue.DequeueAsync (); Console.WriteLine(@ $"event3:  {event3.ToJson()} " ); await  Task.Dela ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览