2012-05-16 7 views
5

Я ищу место, чтобы начать поиск и устранение этой проблемы.Amazon-SQS + Django-Celery создает тысячи очередей (очередь для каждого сообщения)

здесь изменения, внесенные в settings.py

#Rabbit MQ settings 
#=============================================================================== 
# BROKER_HOST = "localhost" 
# BROKER_PORT = 5672 
# BROKER_USER = "vei_0" 
# BROKER_PASSWORD = "1234" 
# BROKER_VHOST = "videoencoder" 
#=============================================================================== 




DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
AWS_ACCESS_KEY_ID = "xxxx" 
AWS_SECRET_ACCESS_KEY = "xxxx" 
AWS_STORAGE_BUCKET_NAME = "images" 
#Amazon SQS settings. 
BROKER_TRANSPORT = 'sqs' 
BROKER_TRANSPORT_OPTIONS = { 
    'region': 'us-east-1', 
} 
BROKER_USER = AWS_ACCESS_KEY_ID 
BROKER_PASSWORD = AWS_SECRET_ACCESS_KEY 
CELERY_DEFAULT_QUEUE = 'hardwaretaskqueue' 
CELERY_QUEUES = { 
    CELERY_DEFAULT_QUEUE: { 
     'exchange': CELERY_DEFAULT_QUEUE, 
     'binding_key': CELERY_DEFAULT_QUEUE, 
    } 
} 


CELERYD_CONCURRENCY = 2 
CELERY_TASK_RESULT_EXPIRES = 120 
CELERY_RESULT_BACKEND = "amqp" 

Я проснулся сегодня утром на сообщение от амазонки, говоря «вы имели в виду, чтобы сделать bijillion очереди?»

+0

+1 для смешного сообщения от Amazon уже :) –

+0

У моего секретного ключа есть косая черта в нем. Это может быть проблема? – michael

ответ

9

При использовании CELERY_RESULT_BACKEND = 'amqp' для каждого сообщения результата создается новая очередь. Чтобы этого избежать, вы можете просто использовать другой CELERY_RESULT_BACKEND, такой как база данных или Redis. Или, если вас не интересуют результаты, вы можете установить CELERY_IGNORE_RESULT = True.

+0

Очереди удаляются при чтении сообщения результатов? – michael

+0

Очереди создаются как автоматическое удаление по спецификации AMQP, но я не мог рассказать вам о том, как SQS обрабатывает этот флаг. –

 Смежные вопросы

  • Нет связанных вопросов^_^