问题描述
我们有一个直接消费者,它根据 a 参数(下面的 vrn)处理来自队列的消息,然后写入另一个 quque。
我们已经看到这可以正常工作,但是任何时候重新启动或某些操作发生时消息未发布到由 CONSISTENT HASH EXCHANGE 管理的队列。基本上它们是从另一个队列中读取的,但不会发布到 CONSISTENT HASH EXCHANGE quques。
这种情况很少发生。有时有效,有时失败。我们尝试在每个步骤进行日志记录,但无法捕获消息丢失的 hpw。
if (rabbitMQConnection != null && !rabbitMQConnection.IsOpen)
{
RMQConnectionManager.disposeRabbitMQConnection();
rabbitMQConnection = RMQConnectionManager.CreaterabbitMQConnection();
model = RMQConnectionManager.CreateModel(rabbitMQConnection);
}
if (model == null || model.IsClosed)
{
model = RMQConnectionManager.CreateModel(rabbitMQConnection);
}
foreach (string q in queues)
{
model.QueueDeclare(q,true,false,null);
}
bool durable = true;
model.ExchangeDeclare(Exchange,CONSISTENT_HASH_EXCHANGE_TYPE,durable,null);
foreach (string q in queues)
{
model.QueueBind(q,Exchange,"1");
}
model.ConfirmSelect();
model.BasicReturn += Channel_BasicReturn;
IBasicProperties properties = model.CreateBasicProperties();
properties.DeliveryMode = deliveryMode;
model.Basicpublish(Exchange,vrn,properties,msgBody);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)