2012-10-16 14 views
6

Verbindung des Sellerie wird periodisch mit der Fehlermeldung zurück:Sellerie Fehler ‚Verbindung von Peer zurückgesetzt‘

[Errno 104] Connection reset by peer 

Derzeit verliere ich die Aufgabe und etwas ausgelöst danach, bis ich den Server zurückgesetzt. Ich habe 2 Fragen: (1) Was verursacht den Fehler/wie kann ich es verhindern? (2) Wie kann ich den Fehler abfangen und meine Aufgaben wiederholen?

Ich bin auf Heroku laufen. Sellery wird mit AMQP (CloudAMQP) als Broker und Redis (REDIS_TO_GO) als Ergebnis-Backend konfiguriert.

Stacktrace:

File "celery/task/trace.py", line 224, in trace_task 
    R = retval = fun(*args, **kwargs) 
File "myapp/tasks.py", line 310, in mytask1 
    mytask2.delay(message) 
File "celery/app/task.py", line 343, in delay 
    return self.apply_async(args, kwargs) 
File "celery/app/task.py", line 458, in apply_async 
    with app.producer_or_acquire(producer) as P: 
File "python2.7/contextlib.py", line 17, in __enter__ 
    return self.gen.next() 
File "celery/app/base.py", line 256, in producer_or_acquire 
    with self.amqp.producer_pool.acquire(block=True) as producer: 
File "kombu/connection.py", line 712, in acquire 
    R = self.prepare(R) 
File "kombu/pools.py", line 57, in prepare 
    p.revive(connection.default_channel) 
File "kombu/connection.py", line 626, in default_channel 
    self._default_channel = self.channel() 
File "kombu/connection.py", line 167, in channel 
    chan = self.transport.create_channel(self.connection) 
File "kombu/transport/amqplib.py", line 324, in create_channel 
    return connection.channel() 
File "kombu/transport/amqplib.py", line 243, in channel 
    return Channel(self, channel_id) 
File "kombu/transport/amqplib.py", line 267, in __init__ 
    super(Channel, self).__init__(*args, **kwargs) 
File "amqplib/client_0_8/channel.py", line 82, in __init__ 
    self._x_open() 
File "amqplib/client_0_8/channel.py", line 469, in _x_open 
    self._send_method((20, 10), args) 
File "amqplib/client_0_8/abstract_channel.py", line 76, in _send_method 
    method_sig, args, content) 
File "amqplib/client_0_8/method_framing.py", line 252, in write_method 
    self.dest.write_frame(1, channel, payload) 
File "amqplib/client_0_8/transport.py", line 165, in write_frame 
    frame_type, channel, size, payload, 0xce)) 
File "python2.7/socket.py", line 224, in meth 
    return getattr(self._sock,name)(*args) 

Versionen:

Django==1.4.1 
django-celery==3.0.9 
celery==3.0.9 
celery-with-redis==3.0 
amqplib==1.0.2 
kombu==2.4.7 
+0

‚Verbindung von Peer zurückgesetzt‘ klingt wie [Karotte] (https://github.com/ask/carrot) Sie Probleme schenkt – dokkaebi

+0

Wie ich es verstehe, Karotte ist schon ersetzt durch Kombu. Könnte Kombu das Problem verursachen? – Mike

+0

Ich habe das gleiche Problem mit sehr ähnlichen Setup. –

Antwort

2

Es sieht aus wie Sie aus Verbindungen ausgeführt werden. Wenn Sie sich ansehen CloudAMQP KonsoleOffene Verbindungen können Sie es überprüfen.

Vielleicht einen Blick auf Sellerie nehmen BROKER_POOL_LIMIT

+0

Das Einstellen von 'BROKER_POOL_LIMIT = None' hat mir geholfen. Vielen Dank. – Stanislav

Verwandte Themen