Thead 安全 HTTP 客户端模块
Thead safe HTTP client module
您会为线程安全的 HTTP 客户端推荐哪个模块?
[备选方案:基于事件的多会话 HTTP 客户端]
额外要求:
- 支持重试(使用部分下载的大文件)
- 共享 cookie
- 作为 Debian 软件包提供
- 大文件的多会话并行下载[不太重要]
不要使用多线程;那只会减慢速度并让您头疼。相反,使用可以执行并行请求的现有引擎。
例如,
Net::Curl::Multi and WWW::Curl::Mult 提供对 libcurl 的访问,这是一个经过验证、功能强大且快速的引擎。 (我在生产中使用了前者。)如果您愿意,您仍然可以在不同的线程中处理响应。
AnyEvent::HTTP and AnyEvent::Curl::Multi 是另外两个这样的引擎。但是,使用这些会增加很多开销(这可能会影响性能和健壮性),而且我不知道各种事件循环处理线程环境的效果如何。
如果这些模块中的任何一个没有 Debian 软件包,请创建一个!
AnyEvent::HTTP 支持您想要使用的任何事件循环。
您会为线程安全的 HTTP 客户端推荐哪个模块?
[备选方案:基于事件的多会话 HTTP 客户端]
额外要求:
- 支持重试(使用部分下载的大文件)
- 共享 cookie
- 作为 Debian 软件包提供
- 大文件的多会话并行下载[不太重要]
不要使用多线程;那只会减慢速度并让您头疼。相反,使用可以执行并行请求的现有引擎。
例如,
Net::Curl::Multi and WWW::Curl::Mult 提供对 libcurl 的访问,这是一个经过验证、功能强大且快速的引擎。 (我在生产中使用了前者。)如果您愿意,您仍然可以在不同的线程中处理响应。
AnyEvent::HTTP and AnyEvent::Curl::Multi 是另外两个这样的引擎。但是,使用这些会增加很多开销(这可能会影响性能和健壮性),而且我不知道各种事件循环处理线程环境的效果如何。
如果这些模块中的任何一个没有 Debian 软件包,请创建一个!
AnyEvent::HTTP 支持您想要使用的任何事件循环。