Vor
Vor

Reputation: 35149

Set max number of messages in the queue

I'm wondering is it possible to set the max number of messages in the queue?

Let's say I want to have no more than 100 msgs in queue Foo, is it possible to do?

Upvotes: 5

Views: 6184

Answers (2)

AlGiorgio
AlGiorgio

Reputation: 497

Do it like this and be happy!

import pika


QUEUE_SIZE = 5

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(
    queue='ids_queue',
    arguments={'x-max-length': QUEUE_SIZE}
)

Here in arguments you will also need to track queue overflow behaviour for your queue.

Upvotes: 1

pinepain
pinepain

Reputation: 12879

Yes, it is possible.

From official documentation

The maximum length of a queue can be limited to a set number of messages by supplying the x-max-length queue declaration argument with a non-negative integer value.

AFAIK, pika's channel.queue_declare has queue_declare has arguments argument which is definitely what you want.

Upvotes: 8

Related Questions