to avoid 100% cpu usage use blocking queue