private void drainMessagesQueue() {
try {
while (true) {
postDrainedMessages(messagesQueue.take());
}
} catch (InterruptedException ex) {
List<List<String>> drainedMessages = new ArrayList<>();
messagesQueue.drainTo(drainedMessages);
drainedMessages.forEach(this::postDrainedMessages);
Thread.currentThread().interrupt();
}
}