[rabbitmq-discuss] Tracking Queues and Exchanges
Chuck Remes
cremes.devlist at mac.com
Wed Jan 21 15:00:42 GMT 2009
On Jan 21, 2009, at 2:37 AM, Ben Hood wrote:
> Daniel,
>
> On Wed, Jan 21, 2009 at 4:03 AM, Daniel N <has.sox at gmail.com> wrote:
>> I've tried to locate this in the docs but I haven't been able to
>> find it
>> (not that it's not there).
>
> Have you read this?
>
> http://www.rabbitmq.com/admin-guide.html#server_status
>
>> Specifically, what queues are on any given exchange, how many
>> messages it's
>> doing per s etc.
>
> This is not possible because we don't expose statistics for delivered
> messages, i.e. the case when messages don't get queued, just
> delivered.
>
>> For Queues, how many messages are in it at any given time, how
>> many / what
>> clients are reading from it?
>
> You should be able to get these. See the above documentation.
>
>> I'm currently using the amqp ruby library to connect and setup my
>> workers.
>
> These is not exposed by the amqp ruby library, just via the
> rabbitmqctl CLI.
You can retrieve the number of messages in the queue via the ruby amqp
library using the #status method.
The following code isn't great but it does illustrate the point. :)
The rest of Ben's reply is correct.
cr
require 'rubygems'
require 'mq'
AMQP.start do
def setup_exchange
exchange = MQ.direct('bar')
EM.add_periodic_timer(1) do
exchange.publish "random number #{rand(1000)}"
end
end
def synchronous_subscribe
@foo = MQ.queue('foo queue')
@foo.bind 'bar'
EM.add_periodic_timer(2) do
@foo.pop do |body|
p body
end
end
end
def get_status
EM.add_periodic_timer(1) do
@foo.status do |message_count|
p message_count
end
end
end
setup_exchange
synchronous_subscribe
get_status
end
More information about the rabbitmq-discuss
mailing list