2012-12-13 23 views
12

我試圖建立亞馬遜SQS芹菜,我有以下配置:SQS芹菜配置

BROKER_BACKEND = "SQS" 
BROKER_TRANSPORT_OPTIONS = { 
    'region': 'us-east-1', 
} 
AWS_ACCESS_KEY_ID = # access id 
AWS_SECRET_ACCESS_KEY = # secret access key 
os.environ.setdefault("AWS_ACCESS_KEY_ID", AWS_ACCESS_KEY_ID) 
os.environ.setdefault("AWS_SECRET_ACCESS_KEY", AWS_SECRET_ACCESS_KEY) 

BROKER_URL = 'sqs://' 

CELERY_IMPORTS = ("tasks",) 
CELERY_TASK_RESULT_EXPIRES = 300 

CELERY_DEFAULT_QUEUE = #queue name 
CELERY_DEFAULT_EXCHANGE = CELERY_DEFAULT_QUEUE 
CELERY_DEFAULT_EXCHANGE_TYPE = CELERY_DEFAULT_QUEUE 
CELERY_DEFAULT_ROUTING_KEY = CELERY_DEFAULT_QUEUE 
CELERY_QUEUES = { 
    CELERY_DEFAULT_QUEUE: { 
     'exchange': CELERY_DEFAULT_QUEUE, 
     'binding_key': CELERY_DEFAULT_QUEUE, 
    } 
} 

在對AWS賬戶我的SQS配置,我有寫在CELERY_DEFAULT_QUEUE名稱的隊列。當我在本地運行時,一切正常......但由於某種原因,它在SQS上創建了另一個名稱格式爲<user_id>-celery-pidbox的隊列。像這樣的:MyUser-MacBook-Pro-local-celery-pidbox

這是正常的嗎?爲什麼當我用指定名稱創建一個隊列時,它會創建另一個隊列?否則,它的工作,不知道是否需要其他隊列或我錯過了什麼?任何幫助表示讚賞,我無法在文檔中找到它。

編輯

原來,這是正常的。出於某種原因,django-celery會這樣做,它會爲您訪問您要訪問的隊列的每個框創建一個隊列。他們將在未來的版本中解決這個問題。如果有人知道如何解決這個暫時,請讓我知道,謝謝!

+0

你有解決這個問題的更新嗎? – silviomoreto

回答

5

這實際上是一個很好的行爲,因此您可以監視哪些實例(IP或本地名稱)正在訪問您的SQS帳戶。這只是一個請求,所以它不會花費任何東西。

+3

你確定一個請求嗎?看起來它不斷投票(=浪費金錢)。 – Andrey

1

您需要設置這些:

CELERY_ENABLE_REMOTE_CONTROL = False 
CELERY_SEND_EVENTS = False 

要禁用。