@Test
    public void benchConsumeRecycledLotOfMessages() throws InterruptedException, IOException {
        System.out.println("benchConsumeRecycledLotOfMessages");

        final Connection connection = factory.newConnection();
        final ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
        for (int ii = 0; ii < 100; ii++) {
            final int THREAD_NUMBER = ii;
            executor.execute(new Runnable() {

                @Override
                public void run() {
                    try {
                        final SharedConnectionConsumer consumer = new SharedConnectionConsumer(connection);
                        consumer.setQueueName("TASKS");
                        consumer.setAutoAck(false);
                        consumer.prepare();
                        for (long ii = 0; ii < 100000L; ii++) {
                            consumer.run();
                            System.out.println("Consuming : " + ii + " in " + THREAD_NUMBER);
                        }
                    } catch (IOException ex) {
                    }
                }
            });
        }

        executor.shutdown();
        executor.awaitTermination(1, TimeUnit.HOURS);
    }