RabbitMQ und C#

Mit RabbitMQ gibt es einen Weg, es zu benutzen, ähnlich MSSMQ wo kann man pop 1000 Nachrichten aus der Warteschlange, dann machen Sie Ihre Einsätze, um die Datenbank und von dort aus weiter.

Ich kann nicht scheinen zu tun, dass mit einem Abonnement für einen Kanal und dann ein foreach über die BasicDeliveryEventArgs im Abonnement, mit, dass dabei eine If-Anweisung mit der max Anzahl Nachrichten, die ich Bearbeiten möchten, in der gegebenen Zeit.

Vielen Dank im Voraus
Dies ist jedoch immer noch nimmt alle 22k Nachrichten aus der Warteschlange

using (IConnection connection = factory.CreateConnection())
{
    using (IModel channel = connection.CreateModel())
    {
        channel.QueueDeclare("****", true, false, false, null);

        var subscription = new Subscription(channel, "****", false);
        int maxMessages = 5;
        int i = 0;
        foreach (BasicDeliverEventArgs eventArgs in subscription)
        {
            if (++i == maxMessages)
            {
                Console.WriteLine("Took 5 messages");
                subscription.Ack(eventArgs);
                break;
            }
        }
    }
}
  • Ich verstehe nicht, die Frage, insbesondere die "mit, dass dabei eine if-Anweisung" Teil. Sie könnten versuchen zu klären?
  • Aktualisiert die post
  • Immer noch nicht die für mich Sinn machen. Was versuchen Sie zu erreichen?
  • Ich werde versuchen, 1000 Nachrichten aus der Warteschlange zu einem Zeitpunkt, und nicht alle haben die Nachricht, die unten kommen auf einmal
InformationsquelleAutor user1053237 | 2011-11-18
Schreibe einen Kommentar