[rabbitmq-discuss] Why is RabbitMQ not persisting messages on a durable queue?
hekevintran
hekevintran at gmail.com
Fri Feb 18 21:19:00 GMT 2011
I am using RabbitMQ with Django through Celery. I am using the most
basic setup:
# RabbitMQ connection settings
BROKER_HOST = 'localhost'
BROKER_PORT = '5672'
BROKER_USER = 'guest'
BROKER_PASSWORD = 'guest'
BROKER_VHOST = '/'
I imported a Celery task and queued it to run one year later. From the
iPython shell:
In [1]: from apps.test_app.tasks import add
In [2]: dt=datetime.datetime(2012, 2, 18, 10, 00)
In [3]: add.apply_async((10, 6), eta=dt)
DEBUG:amqplib:Start from server, version: 8.0, properties:
{u'information': 'Licensed under the MPL. See http://www.rabbitmq.com/',
u'product': 'RabbitMQ', u'version': '2.2.0', u'copyright': 'Copyright
(C) 2007-2010 LShift Ltd., Cohesive Financial Technologies LLC., and
Rabbit Technologies Ltd.', u'platform': 'Erlang/OTP'}, mechanisms:
['PLAIN', 'AMQPLAIN'], locales: ['en_US']
DEBUG:amqplib:Open OK! known_hosts []
DEBUG:amqplib:using channel_id: 1
DEBUG:amqplib:Channel open
DEBUG:amqplib:Closed channel #1
Out[3]: <AsyncResult: cfc507a1-175f-438e-acea-8c989a120ab3>
RabbitMQ received this message in the celery queue:
$ rabbitmqctl list_queues name messages durable
Listing queues ...
KTMacBook.local.celeryd.pidbox 0 false
celery 1 true
celeryctl_KTMacBook.local 0 true
...done.
I then killed RabbitMQ by hitting control-C followed by 'a' to abort.
When I start the server again and check it with rabbitmqctl, it says
that there are no messages in the celery queue:
$ rabbitmqctl list_queues name messages durable
Listing queues ...
celery 0 true
celeryctl_KTMacBook.local 0 true
...done.
The celery queue was durable. Why were the messages not persisted?
What do I need to do to make the messages persistent?
More information about the rabbitmq-discuss
mailing list