SimpleAmqpClient 在实际工程应用中,如果生产者一直向队列中发送数据,如果没有消费者从队列中取出数据,长时间可能会导致消息队列被塞满,因此需要在消息队列中设置消息过期时间,当超过该时间仍然没有消费者从队列中取出数据,则队列直接删除该数据。
SimpleAmqpClient 设置消息过期时间代码如下:
//需要发送是消息
AmqpClient::BasicMessage::ptr_t message = AmqpClient::BasicMessage::Create(str);
//设置消息过期时间
message->Expiration("20000"); //队列消息过期时间为20s
channel->BasicPublish("", queuename,message); //发送消息
消息发送完成后,在Rabbitmq Management管理界面就可以看到,当消息超过20s,如果没有消费者取出消息,20s后该消息自动被删除,保证了系统的安全性。过期时间可以根据自己是需要设置对应值。