Why is RabbitMQ not persisting messages on a durable queue?
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?
Why is RabbitMQ not persisting messages on a durable queue?
===

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?