Warum ist RabbitMQ nicht persistenten Nachrichten auf einem dauerhaften Warteschlange?

Ich bin mit RabbitMQ mit Django durch Sellerie. Ich bin mit dem meisten basic-setup:

# RabbitMQ connection settings
BROKER_HOST = 'localhost'
BROKER_PORT = '5672'
BROKER_USER = 'guest'
BROKER_PASSWORD = 'guest'
BROKER_VHOST = '/'

Ich importierte eine Sellerie Aufgabe und in der Warteschlange und es laufen ein Jahr später. Aus der 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 diese Nachricht erhalten, in der Sellerie-Warteschlange:

$  rabbitmqctl list_queues name messages durable
Listing queues ...
KTMacBook.local.celeryd.pidbox  0   false
celery  1   true
celeryctl_KTMacBook.local   0   true
...done.

Ich dann getötet RabbitMQ durch drücken von control-C, gefolgt von 'a' zum Abbrechen. Wenn ich den server wieder starten, und überprüfen Sie es mit rabbitmqctl, es sagt, dass es keine Nachrichten in der Sellerie-Warteschlange:

$  rabbitmqctl list_queues name messages durable
Listing queues ...
celery  0   true
celeryctl_KTMacBook.local   0   true
...done.

Sellerie queue langlebig. Warum wurden die Nachrichten nicht gespeichert? Was muss ich tun, damit die Nachrichten persistent?

InformationsquelleAutor hekevintran | 2011-02-18

Schreibe einen Kommentar