2015-03-29 11 views
5

Mam projekt Django na węźle Ubuntu EC2, którego używałem do skonfigurowania asynchronicznego przy użyciu Celery."odmowa połączenia" z serwerem Celery

Obserwuję How to list the queued items in celery? wraz z dokumentami, aby poeksperymentować z selerem przy linii poleceń.

byłem w stanie uzyskać podstawowe zadanie pracuje w wierszu poleceń, używając:

(env1)[email protected]:~/projects/tp$ celery --app=myproject.celery:app worker --loglevel=INFO 

Jednakże, jeśli biegnę innych poleceń seler jak poniżej Dostaję następujące:

(env1)[email protected]:~/projects/tp$ celery inspect ping 
Traceback (most recent call last): 
    File "/home/ubuntu/.virtualenvs/env1/bin/celery", line 11, in <module> 
    sys.exit(main()) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/__main__.py", line 30, in main 
    main() 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/celery.py", line 81, in main 
    cmd.execute_from_commandline(argv) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/celery.py", line 769, in execute_from_commandline 
    super(CeleryCommand, self).execute_from_commandline(argv))) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/base.py", line 307, in execute_from_commandline 
    return self.handle_argv(self.prog_name, argv[1:]) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/celery.py", line 761, in handle_argv 
    return self.execute(command, argv) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/celery.py", line 693, in execute 
    ).run_from_argv(self.prog_name, argv[1:], command=argv[0]) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/base.py", line 311, in run_from_argv 
    sys.argv if argv is None else argv, command) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/base.py", line 373, in handle_argv 
    return self(*args, **options) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/base.py", line 270, in __call__ 
    ret = self.run(*args, **kwargs) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/celery.py", line 324, in run 
    return self.do_call_method(args, **kwargs) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/celery.py", line 346, in do_call_method 
    callback=self.say_remote_command_reply) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/bin/celery.py", line 385, in call 
    return getattr(i, method)(*args) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/app/control.py", line 100, in ping 
    return self._request('ping') 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/app/control.py", line 71, in _request 
    timeout=self.timeout, reply=True, 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/celery/app/control.py", line 307, in broadcast 
    limit, callback, channel=channel, 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/kombu/pidbox.py", line 283, in _broadcast 
    chan = channel or self.connection.default_channel 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/kombu/connection.py", line 756, in default_channel 
    self.connection 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/kombu/connection.py", line 741, in connection 
    self._connection = self._establish_connection() 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/kombu/connection.py", line 696, in _establish_connection 
    conn = self.transport.establish_connection() 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/kombu/transport/pyamqp.py", line 112, in establish_connection 
    conn = self.Connection(**opts) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/amqp/connection.py", line 165, in __init__ 
    self.transport = self.Transport(host, connect_timeout, ssl) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/amqp/connection.py", line 186, in Transport 
    return create_transport(host, connect_timeout, ssl) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/amqp/transport.py", line 299, in create_transport 
    return TCPTransport(host, connect_timeout) 
    File "/home/ubuntu/.virtualenvs/env1/lib/python3.4/site-packages/amqp/transport.py", line 95, in __init__ 
    raise socket.error(last_err) 
OSError: [Errno 111] Connection refused 

zainstalowanych pakietów Pythona:

(env1)[email protected]:~/projects/tp$ pip freeze 
amqp==1.4.6 
anyjson==0.3.3 
billiard==3.3.0.19 
celery==3.1.17 
Django==1.7.7 
django-redis-cache==0.13.0 
kombu==3.0.24 
pytz==2015.2 
redis==2.10.3 
requests==2.6.0 
uWSGI==2.0.10 

/projects/tp/tp/celery.py

from __future__ import absolute_import 

import os 
import django 
from celery import Celery 
from django.conf import settings 

# set the default Django settings module for the 'celery' program. 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tp.settings') 
django.setup() 

app = Celery('hello_django') 

# Using a string here means the worker will not have to 
# pickle the object when using Windows. 
app.config_from_object('django.conf:settings') 
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) 

również w redis.conf:

# Specify the path for the unix socket that will be used to listen for 
# incoming connections. There is no default, so Redis will not listen 
# on a unix socket when not specified. 
# 
    unixsocket /var/run/redis/redis.sock 
    unixsocketperm 777 

tp.settings.py:

# CELERY SETTINGS 
BROKER_URL = 'redis://localhost:6379/0' 
CELERY_ACCEPT_CONTENT = ['json'] 
CELERY_TASK_SERIALIZER = 'json' 
CELERY_RESULT_SERIALIZER = 'json' 

CACHES = { 
    'default': { 
     'BACKEND': 'redis_cache.RedisCache', 
     'LOCATION': '/var/run/redis/redis.sock', 
    }, 
} 

edycja 2:

[email protected]:~$ redis-cli ping 
PONG 
[email protected]:~$ service redis-server status 
redis-server is not running 

Edycja 3:

(env1)[email protected]:~/projects/tp$ redis-cli ping 
PONG 
(env1)[email protected]:~/projects/tp$ sudo service redis-server start 
Starting redis-server: failed 
(env1)[email protected]:~/projects/tp$ service redis-server status 
redis-server is not running 

Co robię źle?

Odpowiedz

-1

myślę używasz rabbitmq jak queue.So sprawdzić

sudo service rabbitmq-server status 

jeśli przystanek,

sudo service rabbitmq-server start 
+0

(env1) ubuntu @ ip-172-31-22-65: ~/Projekty/tp $ sudo service rabbitmq-server status rabbitmq-server: nierozpoznana usługa - próbowałem ustawić to za pomocą redis na http://michal.karzynski.pl/blog/2014/05/18/setting-up-an -asynchronous-task-queue-for-django-using-celery-redis/ – user61629

+0

Czy możesz wyświetlić konfiguracje clery takie jak BROKER URL, itp.? – itzMEonTV

+0

patrz edycja. – user61629