Подтвердить что ты не робот

SQS с конфигурацией сельдерея

Я пытался настроить 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 делает это, он создает очередь для каждого окна, к которому у вас есть доступ к очереди, к которой вы хотите получить доступ. Они исправит это в будущем выпуске. Если кто-то знает, как исправить это временно, пожалуйста, дайте мне знать, спасибо!

4b9b3361

Ответ 1

Это действительно хорошее поведение, поэтому вы можете контролировать, какие экземпляры (IP-адреса или локальные имена) обращаются к вашей учетной записи SQS. Это всего лишь один запрос, поэтому он ничего не будет стоить вам.

Ответ 2

Вам необходимо установить следующие параметры:

 CELERY_ENABLE_REMOTE_CONTROL = False 
 CELERY_SEND_EVENTS = False

Чтобы отключить это.