Thead安全的HTTP客户端模块

时间:2017-09-18 17:49:01

标签: perl perl-module

您会为线程安全的HTTP客户端推荐哪个模块?
[替代方案:基于事件的多会话HTTP客户端]

额外要求:

  1. 支持重试(使用部分下载的大文件)
  2. 共享Cookie
  3. 以Debian软件包提供
  4. 大文件的多会话并行下载[不太重要]

2 个答案:

答案 0 :(得分:2)

不要使用多个线程;这只会让事情变得缓慢,令你头疼。相反,使用可以执行并行请求的现有引擎。

例如,

Net::Curl::MultiWWW::Curl::Mult提供对libcurl的访问权限,这是一个经过验证的,强大而快速的引擎。 (我已经在生产中使用了前者。)如果你愿意,你仍然可以在不同的线程中处理响应。

AnyEvent::HTTPAnyEvent::Curl::Multi是另外两个这样的引擎。但是,使用这些会增加很多开销(这可能会影响性能和健壮性),而且我不知道各种事件循环如何处理线程环境。

如果这些模块中的任何一个没有Debian软件包,只需创建一个!

答案 1 :(得分:0)

AnyEvent::HTTP支持您想要使用的任何事件循环。