当极短的时间内发布连续消息,消费端接受的消息不是按顺序消费,而是乱序。使用的是内存队列。
`using DotNetCore.CAP;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Logging;
using Savorboard.CAP.InMemoryMessageQueue;
namespace ConsoleApp3
{
internal class Program
{
static async Task Main(string[] args)
{
var container = new ServiceCollection();
container.AddCap(config =>
{
config.UseInMemoryMessageQueue();
config.UseInMemoryStorage();
});
container.AddLogging(p =>
{
p.AddFilter(n => n == LogLevel.Error);
p.AddConsole();
});
container.TryAddSingleton<TestCapSubscribe>();
container.AddSingleton<TestPublish>();
IServiceProvider serviceProvider = container.BuildServiceProvider();
var bootstrapper = serviceProvider.GetService<IBootstrapper>();
await bootstrapper.BootstrapAsync();
var testPublish = serviceProvider.GetService<TestPublish>();
await testPublish.TestPublishAsync();
Console.ReadLine();
}
}
public class TestPublish
{
private readonly ICapPublisher _capPublisher;
public TestPublish(ICapPublisher capPublisher)
{
_capPublisher = capPublisher;
}
public async Task TestPublishAsync()
{
for (int i = 0; i < 1000; i++)
{
// _capPublisher.Publish();
await _capPublisher.PublishAsync("Test", $"{DateTime.Now}+{i}");
}
}
}
public class TestCapSubscribe : ICapSubscribe
{
[CapSubscribe("Test")]
public async Task SubscribeInfoAsync(string content)
{
Console.WriteLine(content);
}
}
当极短的时间内发布连续消息,消费端接受的消息不是按顺序消费,而是乱序。使用的是内存队列。 `using DotNetCore.CAP; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging; using Savorboard.CAP.InMemoryMessageQueue;
namespace ConsoleApp3 { internal class Program { static async Task Main(string[] args) { var container = new ServiceCollection();
}
` 这是测试代码,请排查下