diff --git a/README.md b/README.md index 7c3f9a3..3cf32ac 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,12 @@ 1. MongoDB 2. SqlServer +特性: + +1. 支持重试 +2. 支持多队列 +3. 支持并发消费 + ## 使用方式 初始化: @@ -24,31 +30,70 @@ serviceCollection.AddLightMQ(it => 新增消费者: ```c# -public class TestConsumer:MessageConsumerBase +public class Test2Consumer:IMessageConsumer { - public TestConsumer(IStorageProvider storageProvider) : base(storageProvider) - { - } - public override ConsumerOptions GetOptions() + public ConsumerOptions GetOptions() { return new ConsumerOptions() { - Topic = "test", - PollInterval = TimeSpan.FromSeconds(2) + ParallelNum = 1, + Topic = "test" }; } - public override Task ConsumeAsync(string message, CancellationToken cancellationToken) + public async Task ConsumeAsync(string message, CancellationToken cancellationToken) { - Console.WriteLine(message); - return Task.CompletedTask; + Console.WriteLine("消费消息"+message); + await Task.Delay(2_000,cancellationToken); + return true; } + + } ``` 注册消费者: ```C# -serviceCollection.AddHostedService(); -``` \ No newline at end of file +builder.Services.AddScoped(); +``` + +## 消费者配置 + +```c# +public class ConsumerOptions +{ + /// + /// 主题 + /// + public string Topic { get; set; } + + /// + /// 开启随机队列消费 + /// + public bool EnableRandomQueue {get;set;} + + /// + /// 拉取间隔 + /// + public TimeSpan PollInterval { get; set; }=TimeSpan.FromSeconds(2); + + /// + /// 重试次数(不包括第一次执行) + /// + public int RetryCount { get; set; } = 0; + + /// + /// 重试间隔 + /// + public TimeSpan RetryInterval { get; set; }=TimeSpan.FromSeconds(5); + + /// + /// 并发数量 + /// + public int ParallelNum { get; set; } +} +``` + +更多可以查看Sample实例 \ No newline at end of file