2015-03-29 16 views
5

Celery kullanarak eşzamansız ayarlamak için kullandığım bir Ubuntu EC2 düğümünde bir Django projem var.'bağlantı reddedildi' ile Celery

Komut satırında kereviz denemesi yapmak için, dokümanlar ile birlikte How to list the queued items in celery?'u takip ediyorum.

kullanıyorum, komut satırından çalışan bir temel görevi almak mümkün oldum:

(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 
: Ben şu alıyorum aşağıda gibi diğer kereviz komutları çalıştırırsanız,

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

Ancak

yüklü piton paketleri:

(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.pyredis.conf da

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) 
,:

# 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', 
    }, 
} 

düzenlemek 2:

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

düzenleme 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 

Neyi yanlış yapıyorum?

cevap

-1

Ben

sudo service rabbitmq-server status 

durak olmadığını kontrol queue.So gibi rabbitmq kullandığınız

sudo service rabbitmq-server start 
+0

(env1) ubuntu @ ip-172-31-22-65 düşünüyorum: ~/projeler/tp $ sudo hizmeti rabbitmq-sunucu durumu rabbitmq-server: tanınmayan servis - Bunu http://michal.karzynski.pl/blog/2014/05/18/setting-up-an adresinden sonra redis ile ayarlamaya çalışıyordum -asenkronize-görev-sıra-kuyruk-için-django kullanarak-kereviz-redis/ – user61629

+0

BROKER URL, gibi clery yapılandırmaları gösterebilir miyim vb ? – itzMEonTV

+0

lütfen düzenlemeye bakın. – user61629