我正在使用WWW :: Mechanize将产品目录从网站篡改到我们的数据库(Ingram Micro)。一切都通过SSL。
我收到如下随机错误:
Protocol scheme 'https' is not supported (LWP::Protocol::https not installed)
...但是,安装了LWP :: Protocol :: https 。事实上,大多数时候一切都很好。我唯一能想到的是,这与在Windows上使用线程有关(该过程将作业拆分为25个线程,以补偿英格拉姆网站用于传递每个页面的长时间)。当我使用单个线程时,我还没有看到错误(到目前为止)。
错误不是每次都发生的,通常只发生在一个线程中,其余的都可以在没有接收的情况下工作。
然而,这真的很奇怪。我想知道这里是否有人曾经见过这样的事情,或者有人知道为什么会这样。
谢谢,
旧金山
编辑:万一有人想知道,我使用的是Windows 7 x64和使用MSVC10构建的Perl 5.16.3 x64。
答案 0 :(得分:1)
模块可能存在线程安全问题。请参阅this Perlmonks discussion,以及LWP和https。
线程(呃......讨论)也提供了一些潜在的解决方案。
答案 1 :(得分:0)
我使用的解决方案是在每个线程的开头克隆Mechanize对象,使用克隆版本。但正如我所说,我使用WWW::Mechanize
而不是LWP
。
$mech = $mech->clone();