use LinkedBlockingQueue add size, handle exceptions