c# - 如何在 .Net5 Windows 服务中从 RabbitMQ 获取发布的消息?
问题描述
我正在实施 .Net5 Worker 服务。每当在 RabbitMQ 中发布消息时,我都需要在其中获取消息。并调用其他一些方法。但我无法从ConsumeMessage
. 根本没有例外,我正在接收ea
参数中的消息。
public string ConsumeMessage(string queueName)
{
EventingBasicConsumer consumer;
string message = "";
consumer = new EventingBasicConsumer(this.model);
consumer.Received += (model, ea) =>
{
var body = ea.Body.ToArray();
message = Encoding.UTF8.GetString(body);
this.model.BasicAck(ea.DeliveryTag, false);
};
model.BasicConsume(queueName, false, consumer);
return message;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var message = _messageBroker.ConsumeMessage(_appSettings.RabbitMQConfig.QueueName);
if (message != null)
{
//Do something with the message
}
}
解决方案
推荐阅读
- reactjs - 排版旁边的按钮
- node.js - 我想创建一个自动显示一些结果的搜索方法
- java - 为什么使用 ForkJoin 框架的阶乘计算比使用递归的顺序计算慢
- linux - Logrotate 不会自动旋转文件
- emulation - 使用 Micro Focus Reflection 连接 IBM 终端
- r - ggplotly 不显示具有无限值的条形图
- php - 如何在php中显示带有列名的json数据
- python - 根据行中的值选择列
- entity-framework-core - 指定表名的不同方式
- android - 如何将 Firebase Cloud Firestore 引用与干净的代码一起使用?