What do you think about using an agent here? It would be a fixed set of threads for purging instead of creating a thread per worker/request.