2012-05-16 49 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 :) –

+0

我的密鑰確實有一個正斜槓。這可能是問題嗎? – michael

回答

9

當使用CELERY_RESULT_BACKEND = 'amqp'時,會爲每個結果消息創建一個新隊列。爲了避免這種情況,您可以簡單地使用另一個CELERY_RESULT_BACKEND,如數據庫或Redis。或者,如果您對結果不感興趣,則可以設置CELERY_IGNORE_RESULT = True

+0

讀取結果消息時是否刪除隊列? – michael

+0

按照AMQP規範將隊列創建爲自動刪除,但我無法告訴您SQS如何處理該標誌的具體細節。 –