Frage

Ich habe ein Problem, IMAPLIB auf Python 2.6 mit dem neuesten Django SVN zu verwenden. Ich möchte IMAP -E -Mails in einer Warteschlange herunterladen (mit Celeryd). Ich kann E -Mails aus der Befehlszeile verbinden/herunterladen, aber wenn ich die Aufgabe über Django zu Celeryd ausnutze, erhalte ich folgende Fehler: " : Falsche Versionsnummer ".

IMAPLIB -Dokumente erwähnen nicht, wie Sie eine Version von SSL angeben. Ich versuche, E -Mails von Google Mail zu ziehen. Ich verstehe nicht, warum das Ableiten der Aufgabe in eine Warteschlange mit Celeryd zu, dass die Aufgabe fehlschlägt. Jede Hilfe wäre sehr geschätzt.

EDIT: Hier ist eine Stapelspur:

Datei "/usr/lib/python2.6/imaplib.py", Zeile 643, in Select Type, dat = self._simple_command (Name, Mailbox)

Datei "/usr/lib/python2.6/imaplib.py", Zeile 1059, in _Simple_Command return self.command_complete (name, self.command (Name, *args))

Datei "/usr/lib/python2.6/imaplib.py", Zeile 889, in _command_complete typ, data = self.get_tagged_response (Tag)

Datei "/usr/lib/python2.6/imaplib.py", Zeile 990, in _get_Tagged_Response self._get_response ()

Datei "/usr/lib/python2.6/imaplib.py", Zeile 907, in _get_response resp = self._get_line ()

Datei "/usr/lib/python2.6/imaplib.py", Zeile 1000, in _get_line line = self.readline ()

Datei "/usr/lib/python2.6/imaplib.py", Zeile 1170, in Readline char = self.sslobj.read (1)

Datei "/usr/lib/python2.6/ssl.py", Zeile 136, in Read Return self._sslobj.read (len)

SSLError: [Errno 1] _SSL.C: 1325: Fehler: 1408f10b: SSL Routinen: SSL3_Get_Record: Falsche Versionsnummer

Bearbeiten: Hier ist die Aufgabe, die ich ausführen versuche, wo IMAP_PARSER ein Modul ist, das IMAPLIB einwickelt und E -Mails in meine DB lädt.

class DumpIMAPData(Task):
    def run(self, user, username, password, imap_address, **kwargs):
        logger = self.get_logger(**kwargs)
        celery.log.redirect_stdouts_to_logger(logger, loglevel=None)
        #imap_address is e.g. 'imap.gmail.com'                                  
        parser = imap_parser.IMAPFetcher(imap_address, username, password, user\
)
        parser.load_all_emails()
    return True

Ich habe bemerkt, dass die Aufgabe tatsächlich mit Sellerie ausgeführt wird, es sei denn, ich würde die Aufgabe mit dem Flag -Detach -Flag Daemonisiere. Ich weiß nicht, warum die Aufgabe nur beim Ausführen als Daemon fehlschlagen würde. Ich habe versucht, die gleiche benutzerdesibe und gruppyID mit den Flags -u- und -g -Flags, derselben Ummask und der Gewährleistung des Pfad- und Arbeitsverzeichnisses sowohl für den Daemon als auch für die nicht dahemisierte Version zu stellen, aber die Aufgabe wird immer noch nicht ausgeführt In Sellerie, wenn Sellerie als Daemon läuft.

I "M verwendete die neueste Version von Sellerie (0.9.4).

War es hilfreich?

Lösung 2

Nach dem Schöpfer von Celeryd:

Sellerie löst sich ab 01a8a0e nicht mehr. Es gab viel zu viele Probleme damit, und da es beim Ablösen mit Start-Stop-Dahemon, Supervisford, Startd usw. funktioniert, werden Sie ermutigt, stattdessen diese Tools zu verwenden.

Andere Tipps

Wenn es nur beim Laufen im Selleriearbeiter bricht, kann es mit AmQPLIB (das das SSL -Modul verwendet) etwas geben oder es könnte etwas mit Multiprozessierung und Gabel (eine globale Variable, die vor der Gabel, die nicht mehr lebt, initialisiert wurde), etwas geben kann, der nicht mehr lebt).

Könnten Sie bitte die Aufgabe einfügen, die Sie ausführen möchten? Stellen Sie eine Verbindung zum Server in der Aufgabe selbst her oder ist es eine Art gemeinsam genutzte Objekt?

Sie stellen eine Verbindung zu einem Port her, der keine TLS spricht. Versuchen Sie, mit einem TLS/SSL -fähigen Mailserver zu sprechen, oder versucht Sellerie, TLS für seine AMQP -Verbindung zu verwenden?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top