class RocketMqDtpAdapter extends AbstractDtpAdapter {

    private static final String TP_PREFIX = "rocketMqTp";

    private static final String CONSUME_EXECUTOR_FIELD = "consumeExecutor";

    @Override
    public void refresh(DtpProperties dtpProperties) {
        refresh(dtpProperties.getRocketMqTp(), dtpProperties.getPlatforms());
    }

    @Override
    protected String getTpPrefix() {
        return TP_PREFIX;
    }

    @Override
    protected void initialize() {
        super.initialize();
        adaptConsumerExecutors();
        adaptProducerExecutors();
    }

    public void adaptConsumerExecutors() {

        val beans = JVMTI.getInstances(DefaultMQPushConsumer.class);
        if (CollectionUtils.isEmpty(beans)) {
            log.warn("Cannot find beans of type DefaultMQPushConsumer.");
            return;
        }
        for (DefaultMQPushConsumer consumer : beans) {
            val pushConsumer = (DefaultMQPushConsumerImpl) ReflectionUtil.getFieldValue(DefaultMQPushConsumer.class,
                    "defaultMQPushConsumerImpl", consumer);
            if (Objects.isNull(pushConsumer)) {
                continue;
            }
            val consumeMessageService = pushConsumer.getConsumeMessageService();
            ThreadPoolExecutor executor = (ThreadPoolExecutor) ReflectionUtil.getFieldValue(CONSUME_EXECUTOR_FIELD, consumeMessageService);
            if (Objects.nonNull(executor)) {
                String tpName = consumer.getConsumerGroup();
                if (consumeMessageService instanceof ConsumeMessageConcurrentlyService) {
                    tpName = TP_PREFIX + "#consumer#concurrently#" + tpName;
                } else if (consumeMessageService instanceof ConsumeMessageOrderlyService) {
                    tpName = TP_PREFIX + "#consumer#orderly#" + tpName;
                }
                enhanceOriginExecutor(tpName, executor, CONSUME_EXECUTOR_FIELD, consumeMessageService);
            }
        }
    }

    public void adaptProducerExecutors() {<FILL_FUNCTION_BODY>}
}


        val beans = JVMTI.getInstances(DefaultMQProducer.class);
        if (CollectionUtils.isEmpty(beans)) {
            log.warn("Cannot find beans of type DefaultMQProducer.");
            return;
        }
        for (DefaultMQProducer defaultMQProducer : beans) {
            if (Objects.isNull(ReflectionUtils.findMethod(DefaultMQProducerImpl.class, "getAsyncSenderExecutor"))) {
                continue;
            }
            val producer = (DefaultMQProducerImpl) ReflectionUtil.getFieldValue(DefaultMQProducer.class,
                    "defaultMQProducerImpl", defaultMQProducer);
            if (Objects.isNull(producer)) {
                continue;
            }
            ThreadPoolExecutor executor = (ThreadPoolExecutor) producer.getAsyncSenderExecutor();
            if (Objects.nonNull(executor)) {
                ThreadPoolExecutorProxy proxy = new ThreadPoolExecutorProxy(executor);
                producer.setAsyncSenderExecutor(proxy);
                String proKey = TP_PREFIX + "#producer#" + defaultMQProducer.getProducerGroup();
                putAndFinalize(proKey, executor, proxy);
            }
        }
    
<methods>public non-sealed void <init>() ,public Map<java.lang.String,org.dromara.dynamictp.core.support.ExecutorWrapper> getExecutorWrappers() ,public List<org.dromara.dynamictp.common.entity.ThreadPoolStats> getMultiPoolStats() ,public void refresh(List<org.dromara.dynamictp.common.entity.TpExecutorProps>, List<org.dromara.dynamictp.common.entity.NotifyPlatform>) ,public void refresh(org.dromara.dynamictp.core.support.ExecutorWrapper, List<org.dromara.dynamictp.common.entity.NotifyPlatform>, org.dromara.dynamictp.common.entity.TpExecutorProps) <variables>private static final Equator EQUATOR,protected final Map<java.lang.String,org.dromara.dynamictp.core.support.ExecutorWrapper> executors