Я пытался настроить Amazon SQS для Celery, и у меня есть следующая конфигурация:
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,
}
}
В моей конфигурации SQS в учетной записи AWS у меня есть очередь с именем, написанным в CELERY_DEFAULT_QUEUE
. Когда я запускаю его локально, все работает... но по какой-то причине он создает очередную очередь в SQS с форматом имени <user_id>-celery-pidbox
. Что-то вроде этого: MyUser-MacBook-Pro-local-celery-pidbox
.
Это нормально? Почему это будет создание другой очереди, когда у меня есть очередь, созданная с указанным именем? В противном случае, его работа, не уверен, нужна ли другая очередь или я что-то пропустил? Любая помощь приветствуется, я не мог найти ее в документах.
ИЗМЕНИТЬ
Оказывается, это нормально. По какой-то причине django-celery делает это, он создает очередь для каждого окна, к которому у вас есть доступ к очереди, к которой вы хотите получить доступ. Они исправит это в будущем выпуске. Если кто-то знает, как исправить это временно, пожалуйста, дайте мне знать, спасибо!