@Override
    public void rejectedExecution(final Runnable r, final ThreadPoolExecutor e) {
        LOG.error("Thread pool [{}] is exhausted! {}.", threadPoolName, e.toString());

        dumpJvmInfoIfNeeded();

        if (!e.isShutdown()) {
            try {
                e.getQueue().put(r);
            } catch (InterruptedException ignored) {
                // Should not be interrupted
            }
        }
    }
A handler for rejected tasks that use blocking producer policy,
not discard task, not throw exception, when the queue is full,
call 'BlockingQueue.put' to let the producer blocking.

@author jiachun.fjc
jraft-rheakv/rheakv-core/src/main/java/com/alipay/sofa/jraft/rhea/util/concurrent/BlockingProducersPolicyWithReport.java