基本的RabbitMQ教程给出了如何从队列中连续检索消息的示例:
var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { channel.QueueDeclare("hello", false, false, false, null); var consumer = new QueueingBasicConsumer(channel); channel.BasicConsume("hello", true, consumer); Console.WriteLine(" [*] Waiting for messages." + "To exit press CTRL+C"); while (true) { var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue(); var body = ea.Body; var message = Encoding.UTF8.GetString(body); Console.WriteLine(" [x] Received {0}", message); } } }
我想要做的是检索已放入队列然后停止的所有消息.
以下两个例子可以解决我的问题
如果我在下午1点启动我的代码,我想处理下午1点之前放在队列中的所有消息.
要么
如果我在13:00:00启动我的代码,并且我的代码运行需要10秒,我不介意它是否包括在13:00:00和13:00:10之间放置在队列中的消息,如一旦队列为空,它就会停止.
我意识到我可以在我的消息中加上时间戳并检查它,或者我可以设置超时值,但我想知道是否有任何内置的方法来正确地执行此操作.
提前致谢.