Hey Jon,
not sure you're interested in fixing this (and we moved to core.async for this kind of logic) but after catching a Throwable the thread exits the recur loop and become inactive. If each thread throws at least one error (likely with a large number of http requests as a job for example) then entire machine stops filling the output lazy seq and become stuck. Suggestion: it should always maintain the same number of threads in the thread pool on errors.
Hey Jon,
not sure you're interested in fixing this (and we moved to core.async for this kind of logic) but after catching a Throwable the thread exits the recur loop and become inactive. If each thread throws at least one error (likely with a large number of http requests as a job for example) then entire machine stops filling the output lazy seq and become stuck. Suggestion: it should always maintain the same number of threads in the thread pool on errors.