MassTransit을 배우려고합니다. NuGet을 통해 MassTransit.RabbitMQ 버전 3.3.5를 설치했습니다. 이미 Erlang 18.0 *과 RabbitMQ 3.6.3을 설치했습니다 (Erlang 버전 19.0은 RabbitMQ 3.6.3과 불안정합니다). 나는 "빠른 시작"MassTransit 프로그램 here을 발견했고, 작은 typeo를 수정 한 후에 컴파일하도록했습니다. 그러나 프로그램을 실행하면 "YourMessage"라는 게시 된 메시지가 처리기에서 처리되지 않습니다. RabbitMQ 관리 플러그인 UI는 메시지가 1 개있는 "test_queue"대기열이 있음을 보여줍니다. 그리고 거기에는 그것이 처리되지 않은 상태로 남아 있습니다. 여기서 무슨 일이 일어나고있는거야? Windows 7에서 실행 중이며 RabbitMQ 서비스가 실행 중입니다. 그것이 작동하는 경우 MassTransit 빠른 시작 응용 프로그램이 작동하지 않습니다.
sbc.ReceiveEndpoint(host, "test_queue", ep =>
{
ep.Handler<YourMessage>(context =>
Console.Out.WriteLineAsync($"Received: {context.Message.Text}"));
});
}
는보기 ... 다음에 ...
sbc.ReceiveEndpoint(host, "test_queue", ep =>
{
ep.Handler<YourMessage>(context =>
{
return Console.Out.WriteLineAsync($"Received: {context.Message.Text}");
});
});
:
using MassTransit;
using System;
namespace MassTransitPOC.Trivial
{
public class YourMessage
{
public string Text { get; set; }
}
public class Program
{
public static void Main()
{
var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri("rabbitmq://localhost"), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "test_queue", ep =>
{
ep.Handler<YourMessage>(context =>
{
return Console.Out.WriteLineAsync($"Received: {context.Message.Text}");
});
});
});
bus.Start();
bus.Publish(new YourMessage { Text = "Hi" });
bus.Stop();
}
}
}
답장을 보내 주셔서 감사합니다.하지만 코드는 핸들러를 구성하는 llambda 표현식의 스타일을 제외하고는 아무 것도 변경하지 않았습니다. 여전히 작동하지 않습니다. – Andy