@Override public void subscribe(final Subscriber<? super QueueSignal> subscriber) { try { if (refCount.getAndIncrement() == 0) { this.channel = lapin.createChannel(); } subscriber.onSubscribe(createSubscription(subscriber, null, null)); } catch (Exception e) { refCount.incrementAndGet(); subscriber.onError(e); } }
@Override public boolean cancelSubscription(PushSubscription<QueueSignal> petitMessagePushSubscription) { if (this.channel != null) { try { if (refCount.decrementAndGet() == 0) { lapin.destroyChannel(channel); } } catch (IOException e) { return false; } } return true; }