2015-03-28 5 views
3

Отправка электронной почты с помощью сельдерея отлично работает на производственном сервере. Попытка использовать его на локальном dev (VM) и не работает. я получаю это когда рестарт:Сельдерей на Django не работает

  • Запуск веб-сервер apache2 [OK]

    • Начиная брокер сообщений RabbitMQ-сервер [OK]
    • Запуск сельдерей задача рабочий сервер celeryd [OK]

      Начало производства сельдерея ... : Нет такого файла или каталога

Кроме того, я получаю эту ошибку в консоли при запуске страницы:

ошибка: [Errno 104] Сброс соединения одноранговой

установки производства:

import djcelery 
djcelery.setup_loader() 
BROKER_HOST = "127.0.0.1" 
BROKER_PORT = 5672 # default RabbitMQ listening port 
BROKER_USER = "vs_user" 
BROKER_PASSWORD = "user01" 
BROKER_VHOST = "vs_vhost" 
CELERY_BACKEND = "amqp" # telling Celery to report the results back to RabbitMQ 
CELERY_RESULT_DBURI = "" 

Когда я побежал:

Судо rabbitmqctl list_vhosts

я получаю это:

Листинг ... виртуальных доменов

/

... сделано.

Что мне нужно изменить в этой настройке, чтобы успешно запустить его на локальной виртуальной машине?

UPDATE

ВХост и пользователь определенно не хватает, так что я бегала предложенные команды. Они выполнены нормально, но все равно это не работает, такая же ошибка. Это должно быть еще одна вещь, которая мешает ему работать, и celeryev подозревается. Это то, что я получаю при остановке и запуске сервера:

  • Остановка веб-сервера apache2 ... ожидание. [OK]
  • Остановка брокер сообщений RabbitMQ-сервер [OK]
  • Остановка сельдерея задач сервера уборщица celeryd старт-стоп-демона: предупреждение: не удалось убить 28006: Нет такого процесса [OK]

Остановка сельдевеев ...НЕ РАБОТАЕТ

  • Запуск веб-сервера apache2 [OK]
    • Начиная брокер сообщений RabbitMQ-сервер [OK]
    • Запуск сельдерей задача рабочий сервер celeryd [OK]

Отправная ceralev ... : Нет таких файл или каталог

Traceback (самый последний вызов последнего):

File "/webapps/target/forums/json_views.py", line 497, in _send_forum_notifications 
    post_master_json.delay('ForumNotificationEmail', email_params) 
    File "/usr/local/lib/python2.6/dist-packages/celery-3.0.25-py2.6.egg/celery/app/task.py", line 357, in delay 
    return self.apply_async(args, kwargs) 
    File "/usr/local/lib/python2.6/dist-packages/celery-3.0.25-py2.6.egg/celery/app/task.py", line 474, in apply_async 
    **options) 
    File "/usr/local/lib/python2.6/dist-packages/celery-3.0.25-py2.6.egg/celery/app/amqp.py", line 250, in publish_task 
    **kwargs 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/messaging.py", line 164, in publish 
    routing_key, mandatory, immediate, exchange, declare) 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/connection.py", line 470, in _ensured 
    interval_max) 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/connection.py", line 396, in ensure_connection 
    interval_start, interval_step, interval_max, callback) 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/utils/__init__.py", line 217, in retry_over_time 
    return fun(*args, **kwargs) 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/connection.py", line 246, in connect 
    return self.connection 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/connection.py", line 761, in connection 
    self._connection = self._establish_connection() 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/connection.py", line 720, in _establish_connection 
    conn = self.transport.establish_connection() 
    File "/usr/local/lib/python2.6/dist-packages/kombu-2.5.16-py2.6.egg/kombu/transport/pyamqp.py", line 115, in establish_connection 
    conn = self.Connection(**opts) 
    File "/usr/local/lib/python2.6/dist-packages/amqp-1.0.13-py2.6.egg/amqp/connection.py", line 136, in __init__ 
    self.transport = create_transport(host, connect_timeout, ssl) 
    File "/usr/local/lib/python2.6/dist-packages/amqp-1.0.13-py2.6.egg/amqp/transport.py", line 264, in create_transport 
    return TCPTransport(host, connect_timeout) 
    File "/usr/local/lib/python2.6/dist-packages/amqp-1.0.13-py2.6.egg/amqp/transport.py", line 99, in __init__ 
    raise socket.error(last_err) 
error: timed out 

Я побежал manage.py celeryev и получил консоль с указанием рабочих и tasks.Everything пуста, и только получать Ошибка соединения: ошибка (тайм-аут («время ожидания»,),).

ответ

2

Похоже, что у вас нет установленного виртуального хоста на локальном сервере RabbitMQ.

Сначала вам нужно добавить виртуальный хост.

sudo rabbitmqctl add_vhost vs_vhost 

Далее необходимо добавить к себе права доступа.

sudo rabbitmqctl set_permissions -p vs_vhost vs_user ".*" ".*" ".*" 

Кроме того, убедитесь, что у вас есть пользовательский настрой, иначе вы можете добавить его с помощью этой команды.

sudo rabbitmqctl add_user vs_user user01 
+0

Это странно, поскольку он говорит, что он запускает RabbitMQ, но ошибка говорит о том, что он не может подключиться к серверу RabbitMQ. Вы уверены, что он работает правильно? В качестве примера работает '' telnet localhost 5672'''? Кроме того, вы запускаете скрипт python из localhost, как это было предложено в примере конфигурации? – eandersson

+0

Если я заведующий telnet localhost 5672, я получаю это: Пытается: 1 ... Подключается к localhost. Символ выхода - '^]'. Соединение закрыто иностранным хостом. Сценарий Python запускается из 10.0.2.15 – user3760940

+0

Так что скрипт Python работает на том же cn, что и скрипт Python? – eandersson

Смежные вопросы