Сельдерей не может сформировать очередь с базой данных документа aws (с использованием SSL) в качестве брокераPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сельдерей не может сформировать очередь с базой данных документа aws (с использованием SSL) в качестве брокера

Сообщение Anonymous »


Версия Python: 3.7 Версия Сельдерея: 5.2

ниже используется код

# app.py (приложение Flask) из фляги импорта Flask, jsonify из импортного сельдерея Сельдерей импортировать db_connectors импортировать ОС из анализа импорта urllib приложение = Колба(__name__) mongo_host = os.environ.get("MONGO_HOST", "") mongo_port = os.environ.get("MONGO_PORT", "") монго_дб = "" mongo_replica = os.environ.get("MONGO_USE_REPLICA", "") mongo_replicaset = os.environ.get("MONGO_REPLICASET", "") mongo_user = os.environ.get("MONGO_USER", "") mongo_password = os.environ.get("MONGO_PASS", "") doc_db_ssl = os.environ.get("MONGO_DOCUMENTDB_SSL", "") doc_db_enabled = os.environ.get("DOCUMENTDB_ENABLE", "") # Настройте приложение Flask для использования Celery Connection_string = mongo_url app.config['CELERY_BROKER_URL'] = строка_соединения app.config['CELERY_RESULT_BACKEND'] = строка_соединения # Инициализируем Сельдерей сельдерей = Celery(app.name,broker=app.config['CELERY_BROKER_URL']) сельдерей.conf.update(app.config) CELERY_BROKER_TRANSPORT_OPTIONS = { "регион": "нас-восток-1", 'visibility_timeout': 360, 'интервал опроса': 1 } # Конфигурация MongoDB mongo_client = db_connectors.get_mongo_connection() # Задача Celery для получения данных из MongoDB @celery.task защита fetch_data_from_mongo(): данные = mongo_client.connection.someDb.someTable.find({ 'find_key': '6523713' }) # Измените этот запрос по мере необходимости result = [запись для записи в данные] вернуть результат @app.route('/fetch_data', методы=['GET']) защита fetch_data(): задача = fetch_data_from_mongo.delay() return jsonify({'task_id': str(task)}) @app.route('/fetch_data_without_delay', методы=['GET']) защита fetch_data_without_delay(): задача = fetch_data_from_mongo() return jsonify({'task_id': str(task)}) если __name__ == '__main__': app.run(debug=False, port=5000)

Существует два API-интерфейса «/fetch_data_without_delay» и «/fetch_data», которые по сути вызывают один и тот же метод для получения данных из базы данных mongo.

Метод «/fetch_data_without_delay» работает нормально и даже извлекает данные из mongo. но "/fetch_data", который использует метод .delay(), выдает следующую ошибку, поскольку ему не удается подключиться к mongodb для формирования очереди

найдите ошибку ниже:

[2023-11-27 14:56:13,684: ERROR/MainProcess] потребитель: невозможно подключиться к mongodb://user_here:** @rhost_here:port_here/db_here: поле «размер» в настоящее время не поддерживается. Повторная попытка через 32,00 секунды... (16/100) [2023-11-27 14:56:45,838: CRITICAL/MainProcess] Неустранимая ошибка: OperationalError («Размер поля» в настоящее время не поддерживается») Traceback (последний вызов последний): Файл «/usr/local/lib/python3.7/site-packages/kombu/transport/virtual/base.py», строка 925, в create_channel вернуть self._avail_channels.pop() IndexError: извлечь из пустого списка Во время обработки вышеуказанного исключения произошло другое исключение: Traceback (последний вызов последний): Файл «/usr/local/lib/python3.7/site-packages/cached_property.py», строка 70, в __get__ вернуть obj_dict[имя] KeyError: «клиент» Во время обработки вышеуказанного исключения произошло другое исключение: Traceback (последний вызов последний): Файл «/usr/local/lib/python3.7/site-packages/kombu/connection.py», строка 446, в _reraise_as_library_errors урожай Файл «/usr/local/lib/python3.7/site-packages/kombu/connection.py», строка 437, в _ensure_connection обратный вызов, тайм-аут = тайм-аут Файл «/usr/local/lib/python3.7/site-packages/kombu/utils/functional.py», строка 312, в retry_over_time вернуть удовольствие(*args, **kwargs) Файл «/usr/local/lib/python3.7/site-packages/kombu/connection.py», строка 877, в _connection_factory self._connection = self._install_connection() Файл «/usr/local/lib/python3.7/site-packages/kombu/connection.py», строка 812, в _install_connection conn = self.transport.install_connection() Файл «/usr/local/lib/python3.7/site-packages/kombu/transport/virtual/base.py», строка 949, в install_connection self._avail_channels.append(self.create_channel(self)) Файл «/usr/local/lib/python3.7/site-packages/kombu/transport/virtual/base.py», строка 927, в create_channel канал = self.Channel(соединение) Файл «/usr/local/lib/python3.7/site-packages/kombu/transport/mongodb.py», строка 146, в __init__ самостоятельный клиент Файл «/usr/local/lib/python3.7/site-packages/kombu/utils/objects.py», строка 30, в __get__ вернуть super().__get__(экземпляр, владелец) Файл «/usr/local/lib/python3.7/site-packages/cached_property.py», строка 74, в __get__ вернуть obj_dict.setdefault(name, self.func(obj)) Файл "/usr/local/lib/python3.7/site-packages/kombu/transport/mongodb.py", строка 385, в клиенте вернуть self._create_client() Файл «/usr/local/lib/python3.7/site-packages/kombu/transport/mongodb.py», строка 378, в _create_client self._create_broadcast(база данных) Файл «/usr/local/lib/python3.7/site-packages/kombu/transport/mongodb.py», строка 354, в _create_broadcast ограничен = Истина) Файл «/usr/local/lib/python3.7/site-packages/pymongo/database.py», строка 369, в create_collection read_concern, session=s, **kwargs) Файл «/usr/local/lib/python3.7/site-packages/pymongo/collection.py», строка 180, в __init__ self.__create(kwargs, сопоставление, сеанс) Файл «/usr/local/lib/python3.7/site-packages/pymongo/collection.py», строка 258, в __create сопоставление = сопоставление, сеанс = сеанс) Файл «/usr/local/lib/python3.7/site-packages/pymongo/collection.py», строка 244, в _command retryable_write=retryable_write) Файл «/usr/local/lib/python3.7/site-packages/pymongo/pool.py», строка 579, в команде неподтвержденный = неподтвержденный) Файл «/usr/local/lib/python3.7/site-packages/pymongo/network.py», строка 150, в команде parse_write_concern_error=parse_write_concern_error) Файл «/usr/local/lib/python3.7/site-packages/pymongo/helpers.py», строка 155, в _check_command_response поднять OperationFailure (msg % errmsg, код, ответ) pymongo.errors.OperationFailure: Поле «Размер» в настоящее время не поддерживается. Вышеупомянутое исключение было непосредственной причиной следующего исключения: Traceback (последний вызов последний): Файл "/usr/local/lib/python3.7/site-packages/celery/worker/worker.py", строка 203, в начале self.blueprint.start(сам) Файл "/usr/local/lib/python3.7/site-packages/celery/bootsteps.py", строка 116, в начале шаг.start(родительский) Файл "/usr/local/lib/python3.7/site-packages/celery/bootsteps.py", строка 365, в начале вернуть self.obj.start() Файл "/usr/local/lib/python3.7/site-packages/celery/worker/consumer/consumer.py", строка 326, в начале blueprint.start(сам) Файл "/usr/local/lib/python3.7/site-packages/celery/bootsteps.py", строка 116, в начале шаг.start(родительский) Файл "/usr/local/lib/python3.7/site-packages/celery/worker/consumer/connection.py", строка 21, в начале c.соединение = c.connect() Файл "/usr/local/lib/python3.7/site-packages/celery/worker/consumer/consumer.py", строка 422, в соединении conn = self.connection_for_read(heartbeat=self.amqheartbeat) Файл «/usr/local/lib/python3.7/site-packages/celery/worker/consumer/consumer.py», строка 429, в Connection_for_read self.app.connection_for_read(сердцебиение=сердцебиение)) Файл «/usr/local/lib/python3.7/site-packages/celery/worker/consumer/consumer.py», строка 456, в Sure_connected обратный вызов = возможно_shutdown, Файл "/usr/local/lib/python3.7/site-packages/kombu/connection.py", строка 381, в обеспечении_соединения. self._ensure_connection(*args, **kwargs) Файл «/usr/local/lib/python3.7/site-packages/kombu/connection.py», строка 437, в _ensure_connection обратный вызов, тайм-аут = тайм-аут Файл "/usr/local/lib/python3.7/contextlib.py", строка 130, в __exit__ self.gen.throw(тип, значение, обратная трассировка) Файл «/usr/local/lib/python3.7/site-packages/kombu/connection.py», строка 450, в _reraise_as_library_errors поднять ConnectionError(str(exc)) из exc kombu.Exceptions.OperationalError: поле «размер» в настоящее время не поддерживается

Пожалуйста, дайте мне знать, чтобы выяснить, почему метод .delay() не работает
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»