Haskell 当我并行运行大量http请求时,我得到;没有这样的协议名称:tcp“;

Haskell 当我并行运行大量http请求时,我得到;没有这样的协议名称:tcp“;,haskell,http-conduit,Haskell,Http Conduit,代码 mapConcurrently httpLBS requests 投掷 ConnectionFailure Network.BSD.getProtocolByName: does not exist (no such protocol name: tcp)) 在大约1k个请求之后。所有请求都并行运行,使进程用光了文件描述符。使用 import ClassyPrelude traverseThrottled :: (MonadMask m, MonadBaseControl IO m,

代码

mapConcurrently httpLBS requests
投掷

ConnectionFailure Network.BSD.getProtocolByName: does not exist (no such protocol name: tcp))

在大约1k个请求之后。

所有请求都并行运行,使进程用光了文件描述符。使用

import ClassyPrelude

traverseThrottled :: (MonadMask m, MonadBaseControl IO m, Forall (Pure m), Traversable t) => Int -> (a -> m b) -> t a -> m (t b)
traverseThrottled concLevel action taskContainer = do
    sem <- newQSem concLevel
    let throttledAction = bracket_ (waitQSem sem) (signalQSem sem) . action
    mapConcurrently throttledAction taskContainer
import classyprellude
traversethrotted::(MonadMask m,MonadBaseControl IO m,Forall(纯m),可遍历t)=>Int->(a->mb)->ta->m(tb)
Traversethrotted ConclLevel操作taskContainer=do
扫描电镜