/** * Create a (non-blocking) supplier for the given topic * * @param topic * @return the supplier */ public Supplier<String> createSupplier(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return queue::pollFirst; }
/** * Create a (non-blocking) consumer for the given topic. * * <p>Advise setting a high capacity to avoid errors * * @param topic * @return the consumer */ public Consumer<String> createConsumer(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return queue::addLast; }
/** * Create a (non-blocking) consumer for the given topic. * * <p>Advise setting a high capacity to avoid errors * * @param topic * @return the consumer */ public Consumer<String> createConsumer(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return queue::addLast; }
/** * Create a (non-blocking) supplier for the given topic * * @param topic * @return the supplier */ public Supplier<String> createSupplier(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return queue::pollFirst; }
@Override protected int getQueueLength() { return mqResource.getQueue(topic).size(); } }
/** * Create a blocking consumer for the given topic * * @param topic * @return the consumer */ public Consumer<String> createBlockingConsumer(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return t -> { boolean accepted = false; while (!accepted) { try { accepted = queue.offerLast(t, 1, TimeUnit.MINUTES); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } }; }
/** * Create a blocking consumer for the given topic * * @param topic * @return the consumer */ public Consumer<String> createBlockingConsumer(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return t -> { boolean accepted = false; while (!accepted) { try { accepted = queue.offerLast(t, 1, TimeUnit.MINUTES); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } }; }
/** * Create a (blocking) supplier for the given topic * * @param topic * @return the supplier */ public Supplier<String> createBlockingSupplier(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return () -> { while (true) { try { final String s = queue.pollFirst(1, TimeUnit.MINUTES); if (s != null) { return s; } } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } }; }
/** * Create a (blocking) supplier for the given topic * * @param topic * @return the supplier */ public Supplier<String> createBlockingSupplier(final String topic) { final BlockingDeque<String> queue = getQueue(topic); return () -> { while (true) { try { final String s = queue.pollFirst(1, TimeUnit.MINUTES); if (s != null) { return s; } } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } }; }