Librabbitmq 2.0.0 с Python 3 дает TypeError: не может выбирать объекты обзора памяти - PullRequest
0 голосов
/ 01 мая 2018

Я использую последнюю основную ветку git repo https://github.com/celery/librabbitmq и устанавливаю librabbitmq==2.0.0 для Python 3.6, следуя инструкциям в файле readme

Использование версии для разработки

Вы можете клонировать хранилище, выполнив следующие действия:

$ git clone git://github.com/celery/librabbitmq.git

Затем установите его, выполнив следующее:

$ cd librabbitmq
$ make install        # or make develop

Это прекрасно работает (после установки определенных двоичных файлов для компиляции c в ОС), но когда я затем создаю небольшую задачу a+b add и вызываю ее с add.delay(2,2), она завершается ошибкой со следующей ошибкой. Я посмотрел вверх и увидел, что Celery 4 использует json в качестве сериализатора, поэтому ясно, что это не потому, что если сериализация рассола

  1. Переход от librabbitmq к брокеру pyamqp работает нормально
  2. Точно такая же ситуация в MacOS и Ubuntu 16

[2018-04-30 23: 40: 02,956: CRITICAL / MainProcess] Неустранимая ошибка: SystemError ('возвратил результат с установленной ошибкой',) Traceback (большинство последний звонок последний): File "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/kombu/messaging.py", строка 624, в _receive_callback вернуть on_m (сообщение), если on_m иначе self.receive (декодированный, сообщение) Файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", строка 570, в on_task_received обратные вызовы, файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/strategy.py", строка 145, в task_message_handler обрабатывать (req) файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/worker.py", строка 221, в _process_task_sem вернуть файл self._quick_acquire (self._process_task, req) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/kombu/async/semaphore.py", линия 62, в приобретении Файл обратного вызова (*partal_args, ** Partical_kwargs) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/worker.py", строка 226, в _process_task Файл req.execute_using_pool (self.pool) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/request.py", строка 531, в execute_using_pool correlation_id = task_id, файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/concurrency/base.py", строка 155, в apply_async ** параметры) Файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/billiard/pool.py", строка 1486, в apply_async self._quick_put (файл TASK, (result._job, None, func, args, kwds))) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/concurrency/asynpool.py", строка 813, в send_job body = dumps (tup, protocol = protocol) TypeError: невозможно выбрать объекты просмотра памяти

Вышеуказанное исключение было прямой причиной следующего исключения:

Traceback (последний вызов был последним): File "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/worker.py", строка 203, в начале Файл self.blueprint.start (self) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/bootsteps.py", строка 119, в начале step.start (родительский) файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/bootsteps.py", строка 370, в начале вернуть файл self.obj.start () "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", строка 320, в начале Файл blueprint.start (self) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/bootsteps.py", строка 119, в начале step.start (родительский) файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", строка 596, в начале Файл c.loop (* c.loop_args ()) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/celery/worker/loops.py", строка 88, в асинхронном режимеследующий (цикл) файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/kombu/async/hub.py", строка 354, в create_loop Файл cb (* cbargs) "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/kombu/transport/base.py", строка 236, в on_readable читатель (цикл) Файл "/Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/kombu/transport/base.py", строка 218, в _read Файл «dri_events (timeout = 0)» /Users/somghosh/.virtualenvs/ctdb/lib/python3.6/site-packages/librabbitmq-2.0.0-py3.6-macosx-10.6-intel.egg/librabbitmq/ * INIT 1030 * .py», строка 227, в сток-событиях self._basic_recv (timeout) SystemError: возвратил результат с ошибкой, установленной

1 Ответ

0 голосов
/ 14 августа 2018

Эту библиотеку не рекомендуется использовать как брокера rabbitmq с сельдереем. Вместо этого, пожалуйста, попробуйте py-amqp. это более поддерживается и менее глючит.

...