MassTransit Consumer 在进行依赖注入时不使用消息
MassTransit Consumer not consuming messages when doing Dependency Injection
我为依赖注入设置了我的消费者和端点,但我的消费者没有从消息队列中获取消息。
我在队列中只有 2 条要发送给消费者的消息,但公共交通系统没有接收到它们。
这是我设置所有内容的主程序。
appSettings 值正确。
public class Program {
public static void Main(string[] args) {
var executableLocation = Assembly.GetExecutingAssembly().Location;
Directory.SetCurrentDirectory(Path.GetDirectoryName(executableLocation));
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) => {
var appSettings = new Configuration().GetConfig();
var achievementFactory = new AchievementFactory();
var client = new MongoClient(appSettings.ConnectionString);
var db = client.GetDatabase(appSettings.Database);
var mongoRepository = new MongoDBRepository(db);
services.AddSingleton(appSettings);
services.AddSingleton<IRepository>(mongoRepository);
services.AddSingleton<IAchievementFactory>(achievementFactory);
services.AddMassTransit(x => {
x.AddConsumer<AddAchievementConsumer>();
x.UsingRabbitMq((context, cfg) => {
cfg.Host(appSettings.QueueUrl, settings => {
settings.Username(appSettings.QueueUsername);
settings.Password(appSettings.QueuePassword);
});
cfg.ReceiveEndpoint(appSettings.AchievementQueue, ep =>
ep.ConfigureConsumers(context));
});
});
});
}
但我的消息只是坐在队列中,没有被使用。
查看代码,在我看来你没有启动公共汽车。
配置 MassTransit
后尝试使用 services.AddMassTransitHostedService();
来源:https://masstransit-project.com/usage/configuration.html#asp-net-core
我为依赖注入设置了我的消费者和端点,但我的消费者没有从消息队列中获取消息。
我在队列中只有 2 条要发送给消费者的消息,但公共交通系统没有接收到它们。
这是我设置所有内容的主程序。 appSettings 值正确。
public class Program {
public static void Main(string[] args) {
var executableLocation = Assembly.GetExecutingAssembly().Location;
Directory.SetCurrentDirectory(Path.GetDirectoryName(executableLocation));
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) => {
var appSettings = new Configuration().GetConfig();
var achievementFactory = new AchievementFactory();
var client = new MongoClient(appSettings.ConnectionString);
var db = client.GetDatabase(appSettings.Database);
var mongoRepository = new MongoDBRepository(db);
services.AddSingleton(appSettings);
services.AddSingleton<IRepository>(mongoRepository);
services.AddSingleton<IAchievementFactory>(achievementFactory);
services.AddMassTransit(x => {
x.AddConsumer<AddAchievementConsumer>();
x.UsingRabbitMq((context, cfg) => {
cfg.Host(appSettings.QueueUrl, settings => {
settings.Username(appSettings.QueueUsername);
settings.Password(appSettings.QueuePassword);
});
cfg.ReceiveEndpoint(appSettings.AchievementQueue, ep =>
ep.ConfigureConsumers(context));
});
});
});
}
但我的消息只是坐在队列中,没有被使用。
查看代码,在我看来你没有启动公共汽车。
配置 MassTransit
后尝试使用services.AddMassTransitHostedService();
来源:https://masstransit-project.com/usage/configuration.html#asp-net-core