Προέκυψε σφάλμα SSL πύθωνα imaplib χρησιμοποιώντας celeryd ουρά

ψήφοι
2

Αντιμετωπίζω ένα πρόβλημα με τη χρήση imaplib σε python 2.6 με την τελευταία svn Django. Θέλω να κατεβάσετε τα μηνύματα ηλεκτρονικού ταχυδρομείου IMAP σε μια ουρά (χρησιμοποιώντας celeryd). Είμαι σε θέση να συνδεθούν / λήψη μηνυμάτων ηλεκτρονικού ταχυδρομείου από τη γραμμή εντολών, αλλά όταν απαλλαγούν από την εργασία μέσω Django να celeryd παίρνω αυτό το σφάλμα: «SSLError: [ErrNo 1] _ssl.c: 1325: Σφάλμα: 1408F10B: SSL ρουτίνες: SSL3_GET_RECORD : λάθος αριθμό έκδοσης».

Imaplib έγγραφα δεν αναφέρουν πώς να καθορίσετε μια έκδοση του SSL. Προσπαθώ να τραβήξει τα μηνύματα από το Gmail. Δεν καταλαβαίνω γιατί εκφόρτωση το έργο σε μια ουρά με τη χρήση celeryd θα προκαλέσει το έργο να αποτύχει. Οποιαδήποτε βοήθεια θα εκτιμηθεί πολύ.

Επεξεργασία: εδώ είναι μια στοίβα ίχνος:

Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 643, σε επιλεγμένα τυπ, dat = self._simple_command (όνομα, ταχυδρομική θυρίδα)

Φάκελος /usr/lib/python2.6/imaplib.py, γραμμή 1059, σε _simple_command self._command_complete επιστροφής (όνομα, self._command (όνομα, * args))

Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 889, σε _command_complete τυπ, δεδομένα = self._get_tagged_response (tag)

Φάκελος /usr/lib/python2.6/imaplib.py, γραμμή 990, στο _get_tagged_response self._get_response ()

Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 907, σε _get_response resp = self._get_line ()

Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 1000, σε _get_line γραμμή = self.readline ()

Αρχείο /usr/lib/python2.6/imaplib.py, γραμμή 1170, σε readline char = self.sslobj.read (1)

Φάκελος /usr/lib/python2.6/ssl.py, γραμμή 136, στο self._sslobj.read επιστροφή ανάγνωσης (LEN)

SSLError: [ErrNo 1] _ssl.c: 1325: Σφάλμα: 1408F10B: SSL ρουτίνες: SSL3_GET_RECORD: Αριθμός λάθος έκδοση

Επεξεργασία: Εδώ είναι το έργο προσπαθώ να τρέξει, όπου imap_parser είναι μια μονάδα που αναδιπλώνεται imaplib και τα φορτία e-mail σε db μου.

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

Έχω παρατηρήσει το έργο θα εκτελεστεί στην πραγματικότητα χρησιμοποιώντας το σέλινο αν δεν daemonize την εργασία χρησιμοποιώντας το --detach σημαία. Δεν ξέρω γιατί το έργο θα αποτύχει μόνο όταν λειτουργεί ως δαίμονας. Έχω δοκιμάσει τη ρύθμιση το ίδιο όνομα χρήστη και groupid με το -u και -g σημαίες, την ίδια umask, και εξασφαλίζοντας τη διαδρομή και κατάλογοι εργασίας είναι οι ίδιες τόσο για τον δαίμονα και να μη daemonized έκδοση, αλλά το έργο ακόμα δεν θα τρέξει το σέλινο, όταν σέλινο λειτουργεί ως ένα δαίμονα.

I m χρησιμοποιώντας την πιο πρόσφατη έκδοση του σέλινου (0.9.4).

Δημοσιεύθηκε 06/01/2010 στις 20:47
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
0

Είσαι σύνδεση σε μια θύρα που δεν μιλάει TLS. Προσπαθείτε να μιλήσετε με έναν ενεργοποιημένο / SSL διακομιστή αλληλογραφίας TLS, ή σέλινο προσπαθεί να χρησιμοποιήσει το TLS για τη σύνδεση AMQP της;

Απαντήθηκε 06/01/2010 στις 20:51
πηγή χρήστη

ψήφοι
1

Αν σπάει μόνο όταν τρέχουν στο εσωτερικό του εργαζομένου σέλινο, θα μπορούσε να υπάρχει κάτι με amqplib (που χρησιμοποιεί την μονάδα SSL) ή θα μπορούσε να είναι κάτι με πολυεπεξεργασία και forking (μια καθολική μεταβλητή που προετοιμάστηκε πριν το πιρούνι που δεν είναι πλέον εν ζωή)

Θα μπορούσατε σας παρακαλώ να περιλαμβάνουν την εργασία που προσπαθείτε να εκτελέσετε; Έχετε συνδεθεί με τον server μέσα στο ίδιο το έργο, ή μήπως είναι κάποιο είδος κοινής αντικειμένου;

Απαντήθηκε 08/01/2010 στις 10:03
πηγή χρήστη

ψήφοι
1

Σύμφωνα με τον δημιουργό του celeryd:

Το σέλινο δεν κάνει τη δική αποκόλληση του από 01a8a0e. Υπήρξε πάρα πολλά προβλήματα με αυτό, και δεδομένου ότι λειτουργεί κατά την αποσύνδεση χρησιμοποιώντας start-stop-daemon, supervisord, launchd και ούτω καθεξής, θα ενθαρρύνονται να χρησιμοποιούν αυτά τα εργαλεία αντ 'αυτού.

Απαντήθηκε 23/01/2010 στις 21:27
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more