NServiceBus 测试客户端未收到消息

保罗

我对 NService Bus 非常陌生,所以我正在尝试使用 LearningPersistence 让它与一个简单的测试解决方案一起工作,显然这很快就会改变!

所以我有3个项目:

IceDataExtractor - 发送消息的客户端

IceProcessManager - 处理消息

消息- 包含单个消息类消息

我正在使用 NServiceBus.Bootstrap.WindowsService 2.0.1 生成的标准代码

这是我用来获取样本的页面

然后我修改如下

冰数据提取器

private async Task AsyncOnStart()
{
    try
    {
        var endpointConfiguration = new EndpointConfiguration("IceDataExtractor");
        var transport = endpointConfiguration.UseTransport<LearningTransport>();
        transport.Routing().RouteToEndpoint(typeof(TestMessage), "IceProcessManager");
        endpointConfiguration.UseSerialization<JsonSerializer>();
        //TODO: optionally choose a different error queue. Perhaps on a remote machine
        // https://docs.particular.net/nservicebus/recoverability/
        endpointConfiguration.SendFailedMessagesTo("error");
        //TODO: optionally choose a different audit queue. Perhaps on a remote machine
        // https://docs.particular.net/nservicebus/operations/auditing
        endpointConfiguration.AuditProcessedMessagesTo("audit");
        endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);
        //TODO: For production use select a durable persistence.
        // https://docs.particular.net/nservicebus/persistence/
        endpointConfiguration.UsePersistence<LearningPersistence>();

        //TODO: For production use script the installation.
        endpointConfiguration.EnableInstallers();

        endpointConfiguration.Conventions()
            .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.StartsWith("Messages") &&
                                     t.Namespace.EndsWith("Commands"));

        endpoint = await Endpoint.Start(endpointConfiguration)
            .ConfigureAwait(false);
        PerformStartupOperations();

        **var testMessage = new TestMessage {Id = Guid.NewGuid()};
        await endpoint.Send(testMessage).ConfigureAwait(false);**
    }
    catch (Exception exception)
    {
        logger.Fatal("Failed to start", exception);
        Environment.FailFast("Failed to start", exception);
    }
}

冰过程管理器

private async Task AsyncOnStart()
{
    try
    {
        var endpointConfiguration = new EndpointConfiguration("IceDataExtractor");
        var transport = **endpointConfiguration.UseTransport<LearningTransport>();
        transport.Routing().RouteToEndpoint(typeof(TestMessage), "IceProcessManager");**
        endpointConfiguration.UseSerialization<JsonSerializer>();
        //TODO: optionally choose a different error queue. Perhaps on a remote machine
        // https://docs.particular.net/nservicebus/recoverability/
        endpointConfiguration.SendFailedMessagesTo("error");
        //TODO: optionally choose a different audit queue. Perhaps on a remote machine
        // https://docs.particular.net/nservicebus/operations/auditing
        endpointConfiguration.AuditProcessedMessagesTo("audit");
        endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);
        //TODO: For production use select a durable persistence.
        // https://docs.particular.net/nservicebus/persistence/
        endpointConfiguration.UsePersistence<LearningPersistence>();

        //TODO: For production use script the installation.
        endpointConfiguration.EnableInstallers();

        **endpointConfiguration.Conventions()
            .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.StartsWith("Messages") &&
                                     t.Namespace.EndsWith("Commands"));**

        endpoint = await Endpoint.Start(endpointConfiguration)
            .ConfigureAwait(false);
        PerformStartupOperations();

        var testMessage = new TestMessage {Id = Guid.NewGuid()};
        await endpoint.Send(testMessage).ConfigureAwait(false);
    }
    catch (Exception exception)
    {
        logger.Fatal("Failed to start", exception);
        Environment.FailFast("Failed to start", exception);
    }
}

测试消息类

using System;

namespace Messages.Commands
{
    public class TestMessage
    {
        public Guid Id { get; set; }
    }
}

这一切都编译并运行良好,除了我认为无关紧要的性能警告

应用程序运行良好

我有一个消息处理程序

测试消息处理程序

using System;
using System.Threading.Tasks;
using Messages.Commands;
using NServiceBus;

namespace IceProcessManager
{
    public class TestMessageHandler : IHandleMessages<TestMessage>
    {
        public Task Handle(TestMessage message, IMessageHandlerContext context)
        {
            Console.WriteLine("Handled TEst MEssage ID:{0}", message.Id);

            return Task.CompletedTask;
        }
    }
}

正如您从屏幕截图中看到的,IceProcessManager 没有收到任何消息。我究竟做错了什么?我最初认为我发送消息过早,即在 ProcessManager 启动并运行之前,但这不是问题,因为如果我让 ProcessManager 运行(即从资源管理器运行)然后运行提取器,则不会收到任何消息

理想情况下,我想发送大量消息来测试这个,但我还不熟悉异步的东西!

有人可以帮忙吗?

保罗

sp1nakr

如果我没有遗漏某些东西,您是否为两个实例使用了相同的端点名称?

var endpointConfiguration = new EndpointConfiguration("IceDataExtractor");

当您将消息路由到不存在的“IceDataManager”时。

我猜你可能粘贴了错误的代码?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ADM客户端未收到消息

来自分类Dev

NServiceBus批处理消息

来自分类Dev

WCF服务客户端未收到流消息

来自分类Dev

SignalR客户端未收到服务器消息

来自分类Dev

GCM android客户端未收到消息

来自分类Dev

TCP客户端未收到所有消息

来自分类Dev

NServiceBus 4.0-重复消息

来自分类Dev

使用内存NServiceBus进行测试

来自分类Dev

测试nservicebus传奇的更好方法

来自分类Dev

使用内存NServiceBus进行测试

来自分类Dev

ZeroMQ C ++客户端未收到

来自分类Dev

C# TCP 客户端发送消息,但服务器未收到消息

来自分类Dev

服务器未收到客户端的socket.io消息

来自分类Dev

简单的Netty Echo服务器/客户端未收到消息

来自分类Dev

发生SessionSubscribeEvent时,踩踏客户端未收到消息/通知

来自分类Dev

重新排序连接后,StackExchange Redis .NET客户端未收到消息

来自分类Dev

服务器似乎未收到客户端消息ANDROID

来自分类Dev

重新排序连接后,StackExchange Redis .NET客户端未收到消息

来自分类Dev

UDP客户端未收到UDP服务器消息

来自分类Dev

发生SessionSubscribeEvent时,踩踏客户端未收到消息/通知

来自分类Dev

TCP 服务器未收到来自 TCP 客户端的消息 (Java)

来自分类Dev

使用nservicebus订阅特定的消息类型

来自分类Dev

NServiceBus:找不到(消息)的元数据

来自分类Dev

使用NServiceBus获取MSMQ消息的Id属性

来自分类Dev

在NServiceBus服务之间共享消息定义

来自分类Dev

如何在nservicebus中处理消息顺序?

来自分类Dev

使用NServiceBus.Send从服务器端对客户端进行即时而优美的响应

来自分类Dev

GCM客户端未收到推送通知

来自分类Dev

客户端代码未收到发布的模型

Related 相关文章

热门标签

归档