add ProducerConsumerWorker