예제 #1
0
  private void logQueueFullInfo(MessageTree tree) {
    if (m_statistics != null) {
      m_statistics.onOverflowed(tree);
    }

    int count = m_errors.incrementAndGet();

    if (count % 1000 == 0 || count == 1) {
      m_logger.error("Message queue is full in tcp socket sender! Count: " + count);
    }

    tree = null;
  }
예제 #2
0
  private void sendInternal(MessageTree tree) {
    ChannelFuture future = m_manager.channel();
    ByteBuf buf = PooledByteBufAllocator.DEFAULT.buffer(10 * 1024); // 10K

    m_codec.encode(tree, buf);

    int size = buf.readableBytes();
    Channel channel = future.channel();

    channel.writeAndFlush(buf);
    if (m_statistics != null) {
      m_statistics.onBytes(size);
    }
  }