13

Celery用にAmazonSQSをセットアップしようとしましたが、以下の構成になっています。

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がこれを行い、アクセスしたいキューにアクセスしているボックスごとにキューを作成します。将来のリリースでこれを修正する予定です。誰かがこれを一時的に修正する方法を知っているなら、私に知らせてください、ありがとう!

4

2 に答える 2

5

これは実際には適切な動作であるため、どのインスタンス (IP またはローカル名) が SQS アカウントにアクセスしているかを監視できます。1回のご依頼ですので、費用は一切かかりません。

于 2013-03-08T19:07:29.227 に答える