我使用python 2.6上的imaplib和最新的Django SVN遇到了问题。我想在队列中下载IMAP电子邮件(使用芹菜)。我可以从命令行连接/下载电子邮件,但是当我通过django将任务卸载到芹菜时,我会得到此错误:“ sslerror:[errno 1] _sssl.c:1325:错误:1408f10b:ssl3_get_record:ssl3_record:ssl3_record: :错误的版本编号”。

Imaplib文档没有提及如何指定SSL版本。我正在尝试从Gmail那里提取电子邮件。我不明白为什么使用芹菜将任务卸载为队列会导致任务失败。任何帮助将非常感激。

编辑:这是一个堆栈跟踪:

文件“/usr/lib/python2.6/imaplib.py”,第643行,在select typ,dat = self._simple_command(名称,邮箱)

文件“/usr/lib/python2.6/imaplib.py”,第1059行,在_simple_command return self._command_complete(name,self._command(name, *args)))

文件“/usr/lib/python2.6/imaplib.py”,第889行,在_command_complete typ,data = self._get_tagged_response(tag)

文件“/usr/lib/python2.6/imaplib.py”,第990行,in _get_tagged_response self._get_response()

文件“/usr/lib/python2.6/imaplib.py”,第907行,in _get_response revs = self._get_line()

文件“/usr/lib/python2.6/imaplib.py”,第1000行,in _get_line 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并将电子邮件加载到我的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

我已经注意到,除非我使用-Detach标志对任务进行守护,否则任务实际上将使用芹菜进行。我不知道为什么只有作为守护程序运行时,任务才会失败。我尝试使用-u和-g标志,相同的umask设置相同的UserID和GroupID,并确保守护程序和非daemonized版本的路径和工作目录相同,但是任务仍然不会运行在芹菜作为守护进程时,芹菜。

我使用最新版本的芹菜(0.9.4)。

有帮助吗?

解决方案 2

根据芹菜的创造者的说法:

从01A8A0E开始,芹菜不再进行自己的分离。它的问题太多了,并且由于它在使用Start-daemon,Substisord,LaunchD等分离时起作用,因此您鼓励您使用这些工具。

其他提示

如果仅在芹菜工人内部运行时破裂,则可能有AMQPLIB(使用SSL模块)的某些东西,或者可能是多处理和分叉的东西(一个不再活着的叉子之前初始化的全局变量)

您能否包括您要运行的任务?您是否连接到任务本身内部的服务器,还是某种共享对象?

您正在连接到不讲TLS的端口。您是要与启用TLS/SSL启用的邮件服务器交谈,还是芹菜试图将TLS用于其AMQP连接?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top