class TaskRejectAware extends TaskStatAware {

    @Override
    public int getOrder() {
        return AwareTypeEnum.TASK_REJECT_AWARE.getOrder();
    }

    @Override
    public String getName() {
        return AwareTypeEnum.TASK_REJECT_AWARE.getName();
    }

    @Override
    public void beforeReject(Runnable runnable, Executor executor) {<FILL_FUNCTION_BODY>}
}

        ThreadPoolStatProvider statProvider = statProviders.get(executor);
        if (Objects.isNull(statProvider)) {
            return;
        }

        statProvider.incRejectCount(1);
        AlarmManager.tryAlarmAsync(statProvider.getExecutorWrapper(), REJECT, runnable);
        ExecutorAdapter<?> executorAdapter = statProvider.getExecutorWrapper().getExecutor();
        String logMsg = CharSequenceUtil.format("DynamicTp execute, thread pool is exhausted, tpName: {},  traceId: {}, " +
                        "poolSize: {} (active: {}, core: {}, max: {}, largest: {}), " +
                        "task: {} (completed: {}), queueCapacity: {}, (currSize: {}, remaining: {}) ," +
                        "executorStatus: (isShutdown: {}, isTerminated: {}, isTerminating: {})",
                statProvider.getExecutorWrapper().getThreadPoolName(), MDC.get(TRACE_ID), executorAdapter.getPoolSize(),
                executorAdapter.getActiveCount(), executorAdapter.getCorePoolSize(), executorAdapter.getMaximumPoolSize(),
                executorAdapter.getLargestPoolSize(), executorAdapter.getTaskCount(), executorAdapter.getCompletedTaskCount(),
                statProvider.getExecutorWrapper().getExecutor().getQueueCapacity(), executorAdapter.getQueue().size(),
                executorAdapter.getQueue().remainingCapacity(),
                executorAdapter.isShutdown(), executorAdapter.isTerminated(), executorAdapter.isTerminating());
        log.warn(logMsg);
    
<methods>public non-sealed void <init>() ,public void refresh(org.dromara.dynamictp.core.support.ExecutorWrapper, org.dromara.dynamictp.common.entity.TpExecutorProps) ,public void register(org.dromara.dynamictp.core.support.ExecutorWrapper) ,public void remove(org.dromara.dynamictp.core.support.ExecutorWrapper) <variables>protected final Map<java.util.concurrent.Executor,org.dromara.dynamictp.core.support.ThreadPoolStatProvider> statProviders