c# - RabbitMQ:如何创建一个始终在监听的消费者
问题描述
我需要创建一个始终在.NET Framework(4.8)中运行和侦听排队消息的消费者,而不是核心!
接下来的代码是工作的核心。RabbitHelper 封装了一些操作,比如创建连接等等……
class Program
{
static void Main(string[] args)
{
RabbitHelper.Init("host", 123, "user", "password", "Provider", "virtual");
const string queueName = "MYQUEUE";
var consumer = new AsyncEventingBasicConsumer(RabbitHelper.channel);
consumer.Received += Consumer_Received;
RabbitHelper.channel.BasicConsume(queueName, true, consumer);
}
private static async Task Consumer_Received(object sender, BasicDeliverEventArgs eevent)
{
var message = Encoding.UTF8.GetString(eevent.Body.ToArray());
Console.WriteLine($"Begin processing {message}");
await Task.Delay(250);
Console.WriteLine($"End processing {message}");
}
}
解决方案
推荐阅读
- python-3.x - 在部署云函数时在 python 脚本中将环境变量作为参数传递
- octave - 使用 fgetl 命令从键盘获取字符串时,输入后必须按两次“Enter”键
- google-sheets - Google-Sheet 用户打开时不使用外部工作表更新
- javascript - 确保始终在其他所有内容之上播放 HTML 5 视频
- pandas - 如何在机器学习模型中使用转换为整数的 IP 地址
- phpexcel - Yii2 Kartik 导出带有子标题
- mysql - 如何在mysql中将别名设置为整数
- r - 查找矩阵或数据框的行中位数(样本中位数)
- javascript - Javascript - 确定数组是否应设置索引、添加新索引或将现有索引设置为 0
- python - 我无法使用 pyinstaller 将我的 python 文件转换为 exe