Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 重新启动后清除rabbitmq队列_Vb.net_Rabbitmq_Queue_Restart - Fatal编程技术网

Vb.net 重新启动后清除rabbitmq队列

Vb.net 重新启动后清除rabbitmq队列,vb.net,rabbitmq,queue,restart,Vb.net,Rabbitmq,Queue,Restart,我已在windows server 2012 64位上安装了RabbitMQ 我测试了具有大量数据的发布和消费部件一切正常,我面临的唯一问题是在RabbitMQServer重新启动后队列中的消息丢失 我正在使用RabbitMQ的VB.NETSDK 我正在将Queue Declare的“持久”属性设置为true,将DeliveryMode basicqueproperties设置为“2”以使消息持久化。但在我的服务器重新启动后,消息仍然丢失 我如何克服这个问题? 在本页中,RabbitMQ上的消息

我已在windows server 2012 64位上安装了RabbitMQ

我测试了具有大量数据的发布和消费部件一切正常,我面临的唯一问题是在RabbitMQServer重新启动后队列中的消息丢失

我正在使用RabbitMQ的VB.NETSDK

我正在将Queue Declare的
“持久”
属性设置为true,将
DeliveryMode basicqueproperties设置为“2”
以使消息持久化。但在我的服务器重新启动后,消息仍然丢失

我如何克服这个问题?

在本页中,RabbitMQ上的消息持久性被解释为良好:

此时,我们可以确保任务队列不会丢失 如果RabbitMQ重新启动。现在我们需要将消息标记为持久消息- 通过将IBasicProperties.SetPersistent设置为true

关于消息持久性的说明

将消息标记为持久性并不能完全保证消息 不会迷路的。尽管它告诉RabbitMQ将消息保存到磁盘, RabbitMQ接受一个 消息,但尚未保存。而且,RabbitMQ不执行fsync(2) 对于每一条消息,它可能只是保存到缓存中,而不是真的 写入磁盘。持久性保证不是很强,但是 对于我们的简单任务队列来说,这已经足够了。如果你需要 更强大的保证,然后您可以使用publisher确认


您是否正在声明您的队列
channel.QueueDeclare(“queue”,true,false,false,null)即“独占”和“自动删除”设置为false?如果是,请尝试使用web控制台或感谢与我们共享此信息来检查您的队列属性+1.
var properties = channel.CreateBasicProperties();
properties.SetPersistent(true);