Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Message Queue
  • Начало работы
    • Быстрый старт
    • Поддерживаемые инструменты
    • Примеры кода
      • Python
      • Node.js
      • PHP
      • Celery
      • JMS
      • Laravel
      • Terraform
  • Пошаговые инструкции
    • Обзор
    • Создание новой очереди сообщений
    • Отправка сообщений
    • Прием и удаление сообщений
    • Удаление очереди сообщений
  • Концепции
    • Обзор
    • Очереди сообщений
    • Сообщения
    • Дедупликация
    • Таймаут видимости
    • Long Polling
    • Dead Letter Queue
    • Отложенная доставка сообщений в очереди
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Yandex Message Queue API
    • Обзор
    • Queue
      • CreateQueue
      • DeleteQueue
      • GetQueueAttributes
      • GetQueueUrl
      • ListQueues
      • PurgeQueue
      • SetQueueAttributes
    • Message
      • ChangeMessageVisibility
      • ChangeMessageVisibilityBatch
      • DeleteMessage
      • DeleteMessageBatch
      • ReceiveMessage
      • SendMessage
      • SendMessageBatch
    • Типы данных
      • BatchResultErrorEntry
      • ChangeMessageVisibilityBatchRequestEntry
      • ChangeMessageVisibilityBatchResultEntry
      • DeleteMessageBatchRequestEntry
      • DeleteMessageBatchResultEntry
      • Message
      • MessageAttributeValue
      • SendMessageBatchRequestEntry
      • SendMessageBatchResultEntry
    • Стандартные ошибки
  • Публичные материалы
  • Вопросы и ответы
  1. Начало работы
  2. Примеры кода
  3. Celery

Пример использования Yandex Message Queue с Celery

  • Установка
  • Подготовка к работе
  • Пример

Celery — это очередь задач для языка программирования Python, которую можно использовать в работе с Message Queue.

Установка

Установите Celery и необходимые зависимости:

$ pip install celery
$ pip install celery[sqs]
$ pip install boto3
$ pip install pycurl

Задайте переменные окружения:

$ export AWS_ACCESS_KEY_ID="<идентификатор ключа доступа>"
$ export AWS_SECRET_ACCESS_KEY="<секретный ключ>"
$ export AWS_DEFAULT_REGION="ru-central1"

Подготовка к работе

  1. Создайте сервисный аккаунт.
  2. Назначьте роль сервисному аккаунту.
  3. Создайте статический ключ доступа.

Пример

В этом примере:

  1. Задача ставится в очередь.
  2. Выполняются задачи, находящиеся в очереди.

Для запуска примера:

  1. Скопируйте пример в файл с названием ymq_example.py:

    from celery import Celery
    import logging
    import boto3
    
    ENDPOINT = 'message-queue.api.cloud.yandex.net:443'
    
    broker='sqs://{}'.format(ENDPOINT)
    broker_transport_options = {
        'is_secure': True,
    }
    
    app = Celery('ymq_example', broker=broker)
    app.conf.broker_transport_options = broker_transport_options
    
    @app.task
    def add(a, b):
        res = a + b
        app.log.get_default_logger().info('{} + {} = {}'.format(a, b, res))
        return res
    
    if __name__ == '__main__':
        add.delay(2, 3)
        print("Task scheduled, now run 'celery worker -A ymq_example' to execute it")
    
  2. Запустите обработчик задач следующей командой:

    $ celery worker -A ymq_example
    
  3. Поставьте задачу в очередь задач следующей командой:

    $ python ymq_example.py
    

По умолчанию Celery создаёт очередь Message Queue с названием celery в каталоге, которому принадлежит сервисный аккаунт.

В этой статье:
  • Установка
  • Подготовка к работе
  • Пример
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»