Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 9, 2015 05:09:09

MarkHammer
Зарегистрирован: 2013-02-24
Сообщения: 97
Репутация: +  0  -
Профиль   Отправить e-mail  

celery rabbitmq windows

Здравствуйте !
Пытаюсь настроить связку windows+rabbitmq+celery
Сервер rabbitmq установил, создал пользователя
в браузере страничка http://localhost:15672/#/
отображается
но запустить celery не получается - выдает ошибку :

[2015-01-09 05:03:52,170: ERROR/MainProcess] Unrecoverable error: InterruptedError(4, 'Interrupted function call')
Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\worker\consumer.py", line 278, in start
    blueprint.start(self)
  File "C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\bootsteps.py", line 123, in start
    step.start(parent)
  File "C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\worker\consumer.py", line 478, in start
    c.connection = c.connect()
  File "C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\worker\consumer.py", line 375, in connect
    callback=maybe_shutdown,
  File "C:\Python33\lib\site-packages\kombu-3.0.22-py3.3.egg\kombu\connection.py", line 369, in ensure_connection
    interval_start, interval_step, interval_max, callback)
  File "C:\Python33\lib\site-packages\kombu-3.0.22-py3.3.egg\kombu\utils\__init__.py", line 243, in retry_over_time
    return fun(*args, **kwargs)
  File "C:\Python33\lib\site-packages\kombu-3.0.22-py3.3.egg\kombu\connection.py", line 237, in connect
    return self.connection
  File "C:\Python33\lib\site-packages\kombu-3.0.22-py3.3.egg\kombu\connection.py", line 741, in connection
    self._connection = self._establish_connection()
  File "C:\Python33\lib\site-packages\kombu-3.0.22-py3.3.egg\kombu\connection.py", line 696, in _establish_connectio
    conn = self.transport.establish_connection()
  File "C:\Python33\lib\site-packages\kombu-3.0.22-py3.3.egg\kombu\transport\pyamqp.py", line 112, in establish_conn
    conn = self.Connection(**opts)
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\connection.py", line 217, in __init__
    self.connect()
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\connection.py", line 236, in connect
    self.drain_events()
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\connection.py", line 354, in drain_events
    return self.blocking_read(timeout)
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\connection.py", line 359, in blocking_read
    return self.on_inbound_frame(read_frame())
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\method_framing.py", line 65, in frame_handler
    callback(channel, method_sig, buf, None)
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\connection.py", line 385, in on_inbound_method
    method_sig, payload, content,
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\abstract_channel.py", line 124, in dispatch_method
    args, _ = loads(amqp_method.args, payload, 4)
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\serialization.py", line 229, in loads
    val[key], offset = _read_item(buf, offset)
  File "C:\Python33\lib\site-packages\amqp-2.0.0a1-py3.3.egg\amqp\serialization.py", line 154, in _read_item
    ftype, type(ftype)))
amqp.exceptions.FrameSyntaxError: Unknown value in table: 70 (<class 'int'>)

Что может быть не так ?
CELERYBEAT_SCHEDULER="djcelery.schedulers.DatabaseScheduler"
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "pbx"
BROKER_PASSWORD = "password"
BROKER_VHOST = "myvhost"
и почему-то ругается на формат конфига :
C:\Program Files\Apache Software Foundation\Apache2.4\htdocs\mysite>celery -A mysite worker --loglevel=info --concurrency 4
C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\app\defaults.py:246: CPendingDeprecationWarning:
    The 'BROKER_PASSWORD' setting is scheduled for deprecation in     version 2.5 and removal in version v4.0.     Use the BROKER_URL setting instead
  alternative='Use the {0.alt} instead'.format(opt))
C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\app\defaults.py:246: CPendingDeprecationWarning:
    The 'BROKER_VHOST' setting is scheduled for deprecation in     version 2.5 and removal in version v4.0.     Use the BROKER_URL setting instead
  alternative='Use the {0.alt} instead'.format(opt))
C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\app\defaults.py:246: CPendingDeprecationWarning:
    The 'BROKER_PORT' setting is scheduled for deprecation in     version 2.5 and removal in version v4.0.     Use the BROKER_URL setting instead
  alternative='Use the {0.alt} instead'.format(opt))
C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\app\defaults.py:246: CPendingDeprecationWarning:
    The 'BROKER_HOST' setting is scheduled for deprecation in     version 2.5 and removal in version v4.0.     Use the BROKER_URL setting instead
  alternative='Use the {0.alt} instead'.format(opt))
C:\Python33\lib\site-packages\celery-3.1.14-py3.3.egg\celery\app\defaults.py:246: CPendingDeprecationWarning:
    The 'BROKER_USER' setting is scheduled for deprecation in     version 2.5 and removal in version v4.0.     Use the BROKER_URL setting instead
  alternative='Use the {0.alt} instead'.format(opt))
C:\Python33\lib\site-packages\win32\lib\pywintypes.py:39: DeprecationWarning: imp.get_suffixes() is deprecated; use the constants defined on importlib.machinery instead
  for suffix_item in imp.get_suffixes():


Офлайн

#2 Янв. 9, 2015 07:00:39

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

celery rabbitmq windows

MarkHammer
Use the BROKER_URL setting instead

Добавьте строчку в конфиг, остальные с префиксом BROKER* можно убрать.
BROKER_URL = 'amqp://pbx:password@localhost:5672//'

Офлайн

#3 Янв. 9, 2015 15:44:45

MarkHammer
Зарегистрирован: 2013-02-24
Сообщения: 97
Репутация: +  0  -
Профиль   Отправить e-mail  

celery rabbitmq windows

Спасибо - это помогло решить часть проблемы - к сожалению не основную - остается проблема с запуском celery - та-же ошибка , не могу понять почему в трейсбеке значится брокер kombu - хотя я все упоминания о нем удалил из settings.py в django - помогите плиз …
при всем при этом в конфигурации с kombu - всё работает нормально, а как только пытаюсь запустить celery с rabbitmq - выдает не понятные ошибки…

Офлайн

#4 Янв. 9, 2015 19:07:51

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

celery rabbitmq windows

MarkHammer
не могу понять почему в трейсбеке значится брокер kombu

Celery использует kombu. Это библиотека через которую осуществляется всё взаимодействие с протоколом AMQP, т.е. с RabbitMQ.

MarkHammer
при всем при этом в конфигурации с kombu - всё работает нормально

Без kombu кролик салат не ест. А если серьезно Celery, наверное, самая глючная очередь задач, во-первых разработчик один его пилит уж чересчур активно, не последовательно, но при этом амбициозно, а во-вторых с kombu ситуация похожая и интерфейсы меняются будь здоров.
RQ во сто раз проще, не рассматривается случаем?

Офлайн

#5 Янв. 9, 2015 19:50:23

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

celery rabbitmq windows

Alen
RQ во сто раз проще, не рассматривается случаем

Ни в коем случае. Может не работать вообще!!! Продолбался с ней сутки. У меня клала задачи в очередь (проверял по redis) и вообще отказывалась их потом из очереди брать.

P.S. Ось - Федора 19, python 2.7.

P.S.S. Тоже купился на простоту. Так понравилась, что даже распечатал документацию…

Офлайн

#6 Янв. 9, 2015 20:12:51

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

celery rabbitmq windows

4kpt_III
Ни в коем случае. Может не работать вообще!!!

Не знаю, два года работал с celery, в конец задолбался каждое утро задачи перезапускать, и глюки ловить причем каждый день разные, в конце концов понял, что не стоит оно того времени. Вначале пытался работать с celery через mongo, но когда база стала стремительно расти в объеме по 100Gb в день, и устал за celery подчищать, я просто понял что celery с mongo не работает, а заявленная mongo в качестве брокера - профанация. Поставил кролика, думал с ним проблем не будет, ну как же, глюк на глюке, и главное следить чтобы ничего из зависимых пакетов не обновилось, иначе хана продакшену.
Поставил RQ - красота, все работает, если задачи повисают - то по делу, перезапуск кнопочкой из rq-dashboard, там же мониторинг.

4kpt_III
У меня клала задачи в очередь (проверял по redis) и вообще отказывалась их потом из очереди брать.

Сиё лечится простой чисткой базы redis'a. Имеет важность порядок запуска RQ и воркеров.
Тоже в первый день с ней не весело пришлось.

Офлайн

#7 Янв. 9, 2015 20:20:18

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

celery rabbitmq windows

Alen
Сиё лечится простой чисткой базы redis'a. Имеет важность порядок запуска RQ и воркеров.
Тоже в первый день с ней не весело пришлось.

Не помогало. Redis был гол, как сокол

Юзаю redis уже давно. Даже несколько баз на нем напилил самостоятельных. Монгу не юзаю вообще. Использую в celery в качестве брокера - редис. Никаких проблем пока не замечал. Возможно еще отгребу, но пока хватает. По поводу RQ. Не работает и все. Причем настолько все так жестко было, что даже пытался потом просто запустить пример из документации. Ничерта. А я на нем уже нафигачил достаточно много. Просто не мог поверить, что не будет работать. Пол дня коту под хвост!

P.S. Мы же про это чудо говорим?

Отредактировано 4kpt_III (Янв. 9, 2015 20:21:49)

Офлайн

#8 Янв. 9, 2015 20:51:51

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

celery rabbitmq windows

4kpt_III
Использую в celery в качестве брокера - редис. Никаких проблем пока не замечал.

Возможно оно у вас просто не успевает упасть или задач не так много.
Особенность сервиса над которым я работал, была в том что задачи были по настоящему тяжелые, выполнялись от 15 минут до 2 часов.

4kpt_III
По поводу RQ. Не работает и все. Причем настолько все так жестко было, что даже пытался потом просто запустить пример из документации. Ничерта. А я на нем уже нафигачил достаточно много. Просто не мог поверить, что не будет работать. Пол дня коту под хвост!

Но у меня же работает, и я отнюдь не исключение, многие уходят с celery на rq. http://www.slideshare.net/sylvinus/why-and-how-pricing-assistant-migrated-from-celery-to-rq-parispy-2

4kpt_III
P.S. Мы же про это чудо говорим?

Ага, оно.
Кстати, никто не пробовал, да простят мне эту фразу, huey .

Офлайн

#9 Янв. 9, 2015 20:58:07

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

celery rabbitmq windows

Alen
Он так кота назвал. Абзец. Такс-менеджер в честь кота. Я думал у меня все плохо, а тут, оказывается, есть еще хуже…

Alen
Но у меня же работает
Возможно ось. Какая у Вас?

P.S. ТСу может не подойти.

RQ workers will only run on systems that implement fork(). Most notably, this means it is not possible to run the workers on Windows.

Отредактировано 4kpt_III (Янв. 9, 2015 20:59:45)

Офлайн

#10 Янв. 9, 2015 21:02:24

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

celery rabbitmq windows

4kpt_III
Возможно ось. Какая у Вас?
Стандартная hvm Ubuntu LTS 12.04 - 14.04 железо AWS c3.8xlarge (переменное число серверов).

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version